天天看点

Redis订阅了一段时间后订阅失效了( redisTemplate.convertAndSend)

有时候,有些服务长时间运行后,对redis的订阅失效了,但是只要重启服务器又可以了。这个原因如下

引起这一原因是redis.conf中的tcp-keepalive影响的,这个配置默认是0 

官方建议值为60 单位是秒,

此配置的作用是检查健康的连接的时间,可以理解为心跳机制

如果设置为0则不会检查心跳信息,就会造成连接实际已经断开了。但是客户端不知道,也不会抛异常。

所以客户端订阅不了消息也不会报错,将这个配置值修改成60,再重启redis即可。

/etc/init.d/redis-server restart

继续阅读