为什么不建议用redis做消息队列

Posted HappyTeemo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么不建议用redis做消息队列相关的知识,希望对你有一定的参考价值。

redis的list做队列其实还是很爽的,简单,一个读一个写即可,而且基本每个系统都会使用redis,接入没有附加成本,也没有额外的学习成本。

如果需要订阅模型,写三个队列,然后三个消费者分别读自己的那个即可。

但是,也有一些问题:

  1. 无法回放,消费了即消失,没有记录。
  2. 消息体如果很大,会占用很多内存。
  3. 消费者如果很慢,或者异常了,或者流量突然增大,会导致redis内存占用突增,甚至直接OOM.
  4. 内存很贵。其他的消息队列往往用的磁盘,成本低很多。
  5. redis本身对流量密集的场景支持并没有那么友好。

所以,当我们的队列信息很多、或者消息体很大的情况下,建议用其他消息队列,而不是直接用redis。

以上是关于为什么不建议用redis做消息队列的主要内容,如果未能解决你的问题,请参考以下文章

Redis的基本使用(二) 消息队列

Redis做消息队列,香吗?

接收订单用redis做缓存好还是rabbit做消息队列好

用redis实现消息队列(实时消费+ack机制)

用redis实现消息队列(实时消费+ack机制)

消息队列为啥用redis实现