细节长文:选 Redis 还是 MQ,终于说明白了

  • Post author:
  • Post category:其他


经常听到很多人讨论:把 Redis 当作消息队列来用,是否合适?

有人表示赞成,他们认为 Redis 很轻量,用作队列很方便。

也有人反对,认为 Redis 会「丢」数据,最好还是用「专业」的消息中间件更稳妥。

究竟哪种方案更好呢?

这篇文章,我就和你聊一聊把 Redis 当作队列,究竟是否合适这个问题。

我会从简单到复杂,一步步带你梳理其中的细节,把这个问题真正讲清楚。

在文章的最后,我还会告诉你关于「技术选型」的思路,文章有点长,希望你可以耐心读完。

万字长文:选 Redis 还是 MQ,终于说明白了

01 从最简单的开始:List 队列

如果你的业务需求足够简单,想把 Redis 当作队列来使用,最先想到的肯定是 List 这个数据类型。

因为 List 底层的实现就是一个「链表」,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型。

如果把 List 当作队列,你可以这么来用。

生产者使用 LPUSH 发布消息:

127.0.0.1:6379> LPUSH queue msg1
(integer) 1
127.0.0.1:6379> LPUSH queue msg2
(integer) 2



版权声明:本文为qq_64513388原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。