一、场景
1、系统接收到消息后,将消息存入Redis队列
2、系统使用线程从该Redis队列取出消息进行消费
3、通过Debug确认消息已经进入Redis队列,消费线程却无法获取到该消息
二、原因
该消息被其他系统消费了
该Redis队列的Key,在另外的tomcat程序中也存在,处理逻辑也是从队列取出数据进行消费
注:因为是同个项目部署了多个tomcat,redis对列的key又正好一样,所以出现该问题
三、补充
除了消息被其他系统消费的可能外,也有可能是Redis链接阻塞
导致
可以使用以下命令终止所有客户端的链接
client kill id 0