Laravel Redis 切换 phpredis 遇到 read error on connection

Redis 驱动切换到 phpredis 后,使用长连接时(如使用 subscribe 订阅功能),会遇到 “read error on connection to xxx” 的问题。

尝试升级 phpredis 最新的 5.1.1 版仍未解决;

查看了 phredis 的 github 讨论,发现这是 PHP 的一个 BUG 跟 phpredis 之间的冲突,好像这么多年了仍然没有解决掉,PHP 跟 phpredis 也相互扯皮呀!!

目前的解决方案是,用 Python 的 py-redis 来替代这部分功能

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

有个类似 timeout 的参数可以设置吧

5年前 评论
397948486 (楼主) 5年前

订阅前,设置 default_socket_timeout = -1 即可

ini_set('default_socket_timeout', -1);
Redis::subscribe('test', function($message) {
    logger(__METHOD__, [$message]);
});

附上链接地址: github.com/phpredis/phpredis/issue...

4年前 评论