ThinkPHP6使用redis缓存
2022-07-28 14:14:58
210
{{single.collect_count}}

php安装redis扩展

redis命令

tp6缓存配置

1、安装redis扩展后运行

2、修改配置目录config下面的cache.php文件

return ['default'=>'file','stores'=>[// 文件缓存'file' =>[// 驱动方式'type' => 'file',// 设置不同的缓存保存目录'path' => '../runtime/file/',],// redis缓存'redis' =>[// 驱动方式'type' => 'redis',// 服务器地址'host' => '127.0.0.1',//端口号'port'=> '6379',//密码'password'=> "",//默认缓存时间'timeout' => 3600],],];

3、上代码

很好理解  先获取redis的key,第一次查肯定是没有的,就从Mysql查询,然后设置key,再查询就读取key。

一句话:有缓存读取缓存,没有就查询数据(个人理解)

/*** 查询商家信息* @param $id 商家id*/public function getStoreInfo(Request $request){$validate = new CommonValidate(['id' => 'require|integer',]);if (!$validate->check($request->param())) {return api_json(1, $validate->getError());}$store_id = $request->param('id');$redis = new Redis();// 获取redis缓存$store_info = $redis->get('getStoreInfo' . $store_id);if (!$store_info) {$store_info = StoreModel::where(['store_id' => $request->param('id')])->find()->toArray();// 设置redis缓存 第一个参数 key,这里设置的是方法名拼接上传过来的商家id,防止重复,第二个参数就是 值$redis->set('getStoreInfo' . $store_id, $store_info,10); //设置10秒过期 不填默认0为永久缓存return api_json('0', 'mysql', $store_info);} else {return api_json('0', 'reids', $store_info);}}

4、查看效果

第一次访问

cmd命令行查看所有key 

 存到redis成功

10s内刷新页面 查询数据,读的redis缓存

10s后

回帖
全部回帖({{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 ? '加载中...' : '查看更多评论'}}