0

0

一次Redis的使用Bug记要(exec)

php中文网

php中文网

发布时间:2016-06-13 12:23:37

|

1361人浏览过

|

来源于php中文网

原创

一次Redis的使用Bug记录(exec)

博主在一次项目中,使用了工具类中的redis类,因为该redis没有封装管道pipeline和exec命令,所以就大笔一挥来了一段__call;

代码如下(其中$this->_connect()返回的为一个Redis实例)。

之后的事情感觉中文已经无法表述,上代码就是类似这样的

$redis->pipeline();

$redis->lpop($key);

$redis->lpop($key);

$redis->exec();

自己写了简单例子测试之后,正常情况下应该会返回$key队列中的两个栈顶元素,即array('item1','item2');但是该次最终的返回结果竟然是NULL,博主这时候

就超级疑惑,难道是call_user_fun_array()这个申请的函数是木有返回值,尼玛,那这样不是坑死老爹吗。而这仅仅是个人猜测,php宝册在手不虚,发现并无此

说明,但是有一个简单的例子为,看下面的例子加亲自测试是有返回值,那就是说此次猜想不成功。

好吧,只能继续debug了,许久之后依然木有发现问题,请教公司一同事,他来了之后发现你说那就既然是$this->_connect()是一个redis对象,

那上面不是还有一个$this->_redis的句柄吗,直接替换,之后在神奇的事情发生了,尼玛有返回值了。

好吧,那问题就可以猜想一二了,这个肯定说明了$this->_connect()和$this->_redis肯定有哪些地方不太一样,如上面的代码,我们直接把两个变量dump了出来。

之后发现是这样的,如下图看官们应该明白这根本是不同的两个资源。

感觉知道问题所在了,返回了看_connect()函数,发现里面是没有Redis单例的,每次都是new了一个Redis对象。

所以还不知道问题所在的看官可以继续跟着哥往下走。

这个问题呢,我们技术人啥也不说了,上代码,在一批redis的操作命令中,动用了三个不同的redis对象,第三次是直接exec,连pipeline都木有,那肯定是NULL.

这你敢相信,反正我是信了,我也是醉了,当然也是我自己坑了自己。问题到此真相大白。有一次自坑的打怪之路。

 

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

33

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

18

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

46

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

91

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

283

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

370

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

35

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

25

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

72

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

Redis+MySQL数据库面试教程
Redis+MySQL数据库面试教程

共72课时 | 6.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号