gatewayworker使用redis问题

apud

Event.php中定义了静态变量$redis
在onWorkerStart中连接redis并用$redis保存,类中使用self::$redis进行操作redis
大概运行了几十分钟后出现了以下错误:exception 'RedisException' with message 'read error on connection'
已经在onWorkerStart做了以下设置:
@ini_set('default_socket_timeout', -1);
且redis的timeout时间是设置为0。
求大神解决。
mysql是使用gatewayworker自带的mysql操作,所以没出现常驻内存导致的连接问题。自己使用原生redis就出现问题了。。。。
 

4057 2 0
2个回答

apud

是在windows下面开发遇到的。centos环境下暂时没有遇到这个问题,什么情况啊。

  • 暂无评论
喵了个咪

按道理redis的timeout时间是设置为0后redis连接不会断开,如果还是断开我觉得有可能防火墙把不活跃连接给关闭了。我觉得可以用定时器每秒用redis请求点数据,作为心跳维持连接,如果连接断开就重连。

  • apud 2018-10-14

    感谢,我也觉得,我本地windows环境连的是centos服务器上面的redis,centos上面项目连接的就是本机环境,线上的一天了redis目前还没有报错。本地环境的10分钟左右就报错了。

年代过于久远,无法发表回答
🔝