Far*_*her 7 php redis phpredis
"PHP致命错误:未捕获异常'RedisException',消息'连接时读取错误'"
这里的驱动程序是phpredis
$redis->blpop('a', 0);
Run Code Online (Sandbox Code Playgroud)
这总是在1分钟后超时.我的redis.conf说超时0并$redis->getOption(Redis::OPT_READ_TIMEOUT)返回double(0)
如果我这样做,它永远不会超时 $redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
为什么我需要-1?Redis文档timeout 0在redis.conf中说永远不会让我失望.
"默认情况下,如果客户端闲置很多秒,则Redis的最新版本不会关闭与客户端的连接:连接将永远保持打开状态."
par*_*amr 10
我所知道的当前解决方案是禁用phpredis的持久连接,因为自2011年10月以来它们一直被报告为错误.如果您使用的是php-fpm或其他线程模型,则库会专门禁用持久连接.
通过调整php.ini default_socket_timeout值可以降低此错误的频率.
此外,phpredis中的读取超时配置不受普遍支持.标签2.2.3OPT_READ_TIMEOUT中引入了该特征(寻找).