最近使用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