有時候,有些服務長時間運作後,對redis的訂閱失效了,但是隻要重新開機伺服器又可以了。這個原因如下
引起這一原因是redis.conf中的tcp-keepalive影響的,這個配置預設是0
官方建議值為60 機關是秒,
此配置的作用是檢查健康的連接配接的時間,可以了解為心跳機制
如果設定為0則不會檢查心跳資訊,就會造成連接配接實際已經斷開了。但是用戶端不知道,也不會抛異常。
是以用戶端訂閱不了消息也不會報錯,将這個配置值修改成60,再重新開機redis即可。
/etc/init.d/redis-server restart