ThinkPHP5.1使用Redis
2023-03-29 23:03:03
389
{{single.collect_count}}

安装php redis扩展可以参考另一篇博客

这里将两种方式
1.use think\Facade\Cache;
使用这种方式需要修改app\config\cache.php
最后的效果

port,expire根据自己实际情况修改,这里只是作为例子
写一个方法

注意use的是think\Facade\Cache ,如果use think\Cache,会提示Cache没有静态方法store
store里写的缓存类型,我们看看Cache类的源码(application/thinkphp/library/think下)
store方法

按我们指定的类型redis来连接

 

2.use think\cache\driver\Redis;

这样use后,可以直接new Redis();
然后使用$res->set()等方法
这个Redis类在app\thinkphp\library\think\cache\driver下,这个文件夹下还有其它的类型,包括原本app\config\cache.php里的File类型,它们都继承了Driver

 

最后
我们通过看Cache类的源码可以看到缓存是单例的,即同种类型type只会有一个实例,如果实例已存在则返回句柄handler,如果不存在才去创建。
Redis类只有少数的方法,原本Redis的几种数据类型,value都不可以是数组,但这get,set进行了重写,set的时候将其序列化,get的时候再反序列化取出来,所以可以实现存放数组。如果觉得还是想用Redis原本更多的方法,如lpush,lpop等,可以这么做

这个handler()方法是Driver类的,我们就会获得phpredis实对象,这时候就可以使用别的方法

其实Redis类的get方法也是通过句柄handler去调用get方法的

进入get方法后就是之前安装predis后vendor\predis\predis\src\ClientInterface.php这个接口,里面就有属于redis更多的用法

 

以上就是一点对ThinkPHP5.1使用Redis的一点点认识

 

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