用ThinkPHP6操作Redis集群
仅作为Shane个人笔记
- 上一篇文章Shane记录了自己搭建Redis集群的过程
- 这一篇Shane准备记录如何使用TP6框架操作搭建好的集群
- 以下代码中出现的show方法
- 均为Shane写的用来返回
- 统一数据的接口方法
创建测试模块
- Shane取名为cluster
- 在其中创建controller和config文件夹
配置连接
- 将TP6框架根目录config文件夹下的cache.php配置文件复制一份到cluster下的config
- 在stores里仿照file仿写一个redis的配置
'redis_write' => [
'host' => '127.0.0.1', //主机IP
'port' => 6380, //端口
'type' => 'redis', //缓存类型
'password' => 'passadmin', //密码(此密码和Shane上一篇文章设置的密码一致)
'timeout' => 0, //超时
'select' => 0 //选择库
],
- 从配置名redis_write可以看出是master服务器,用来写
- 那么相应的slave服务器用来读
- 所以还需要有一个配置
'redis_read' => [
'host' => 'slave主机IP', //主机IP
'port' => 6380, //端口
'type' => 'redis', //缓存类型
'password' => 'passadmin', //密码(此密码和Shane上一篇文章设置的密码一致)
'timeout' => 0, //超时
'select' => 0 //选择库
],
- 最后再来看下整体配置
<?php
use think\facade\Env;
// +----------------------------------------------------------------------
// | 缓存设置
// +----------------------------------------------------------------------
return [
// 默认缓存驱动
'default' => Env::get('cache.driver', 'redis'),
// 缓存连接方式配置
'stores' => [
'file' => [
// 驱动方式
'type' => 'File',
// 缓存保存目录
'path' => '',
// 缓存前缀
'prefix' => '',
// 缓存有效期 0表示永久缓存
'expire' => 0,
// 缓存标签前缀
'tag_prefix' => 'tag:',
// 序列化机制 例如 ['serialize', 'unserialize']
'serialize' => [],
],
// 更多的缓存连接
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
'type' => 'redis',
'select' => 1
],
'redis_write' => [
'host' => '127.0.0.1',
'port' => 6380,
'type' => 'redis',
'password' => 'passadmin',
'timeout' => 0,
'select' => 0
],
'redis_read' => [
'host' => 'slave主机IP',
'port' => 6380,
'type' => 'redis',
'password' => 'passadmin',
'timeout' => 0,
'select' => 0
],
],
];
创建控制器
- Shane创建一个控制器取名Cluster
- 在其中编写两个方法writeData和readData
/**
* store里填写上一步配置好的redis_write
* /
public function writeData(){
return $this->show(
config("status.success"),
config("message.success"),
Cache::store('redis_write')->set('sss','aaa')
);
}
/**
* store里填写上一步配置好的redis_read
* /
public function readData(){
return $this->show(
config("status.success"),
config("message.success"),
Cache::store('redis_read')->get('sss')
);
}
测试
- 通过 /模块/控制器/方法 的访问路径先访问writeData
- /cluster/Cluster/writeData
- 再访问readData
- /cluster/Cluster/readData
结尾
-
Redis集群在应用层面测试成功之后
-
可以开始后面业务逻辑的编写了
-
并且严格遵守明确的架构分层
-
将对应的代码放入对应的模型层、business层、控制器层
-
用ThinkPHP6制作后台