ThinkPHP5.1使用Redis

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

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

ThinkPHP5.1使用Redis

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

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

ThinkPHP5.1使用Redis

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

 

2.use think\cache\driver\Redis;
ThinkPHP5.1使用Redis

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

ThinkPHP5.1使用Redis

 

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

ThinkPHP5.1使用Redis

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

ThinkPHP5.1使用Redis

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

ThinkPHP5.1使用Redis

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

 

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