用ThinkPHP6操作Redis集群
2022-07-28 14:14:58
227
{{single.collect_count}}

用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//选择库],
  • 最后再来看下整体配置
<?phpuse 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层、控制器层

  • Shane在B站的TP6视频

  • 用ThinkPHP6制作后台

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}