最近使用Redis緩存行情數據,發現程序運行一段時間後,出現subscribe線程再也不可以接收到訂閱的行情數據,發現是由Redis的輸出緩衝機制致使的。redis
Redis爲了解決輸出緩衝區消息大量堆積的隱患,設置了一些保護機制,主要採用兩種限制措施:緩存
經過CONFIG GET *查看,能夠找到客戶端輸出緩衝區的默認配置:服務器
167) "client-output-buffer-limit" 168) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
上述三種規則都是能夠修改的。能夠經過CONFIG SET 命令設置或者直接修改redis.conf線程
config set client-output-buffer-limit pubsub 0 0 0 #將hard limit和soft limit同時置0,關閉該限制。
code