think-redis

CC.

项目框架使用think里的workerman

直接使用引用think里的redis
挂了一晚上提示我报错了
send of 53 bytes failed with errno=10054 远程主机强迫关闭了一个现有的连接。

是不是不能用think里的redis

641 2 0
2个回答

2548a

是不是没做redis心跳吧,我现在在写的项目一直都用think-cahce,redis 跟文件都有,挂那一个星期都不会报错

  • CC. 2022-09-24

    还要心跳的吗,我百度了一下也有可能是反复实例化,大哥你是咋写的

  • yongdao35 2022-09-24

    设置一个定时器,定时redis->ping(),比如50秒一次

2548a

你可以参考一下,在启动的时候加一个定时器,隔50秒左右去获取一次消息,因为workerman 是常驻内存的,里面的redis链接是一直在保持通讯的,如果不加心跳的话,长时间没消息通讯的话会被路由节点强行断开的
Cache::config($config);
if ( $config['default'] === 'redis') {
Timer::add(55, function () {
Cache::get('ping');
});
}

  • CC. 2022-09-24

    好,我试试,多谢

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