在 TP5 中使用 Redis
前面2篇文章已经介绍了如何在 Linux 下安装 Redis 和 配置 PHP 的 redis 扩展
完成以上内容后,接下来我们在 tp5 中链接使用 redis
不需要其他的设置 或 配置
直接在 controller 下
访问成功
以上则完成了最基础的调用。
此时,我们再使用别的语法设置参数,如:hset / hget
结果 报错:未定义方法名 hset()
原因:我们可以找到我们引入进来的那个文件
我们可以看到这里有 set() 方法,所以我们第一个 redis 执行成功 输出了 : 法外狂徒张三
但是当我们搜索 hset() 方法时,显示的内容为空
所以我们无法执行 hset() 等指令
从 redis.php 文件中 我们也可以看到,我们可以直接执行的指令有:has() get() set() inc() dec() rm() clear() 这七个
但是我们要如何执行除了这七个指令外的其他指令呢?
使用 handler 方法
结果 不仅没有报错 并且成功输出出来了
也就是说 以这种方式 连接 redis ,如果想要执行那七个以外的方法,就需要使用 handler 方法
那我们再来分析下 handler 方法是啥
我们回到这个路径 use think\cache\driver\Redis 下的 redis.php 文件
很显然 这里面也没有定义handler 方法
但是我们可以看到 redis.php 引入了 另一个文件
我们接着找到这个文件
可以看到在最后面 有一个 handler 的方法,并且注释了:可执行其他高级方法
至于底层的原因,本人才疏学浅,浅尝辄止,只能挖掘到这里了。
另外再补充一下
在 use think\cache\driver\Redis 这个目录下的 redis.php 中 我们可以看到
这里有一个 host 参数 ,值为:127.0.0.1
它对应的是服务器中 redis.conf 内的