一、为什么不用Redis做消息队列

经常听到很多人讨论,关于把 Redis 当作队列来用是否合适的问题。

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

也些人则反对,认为 Redis 会丢数据,最好还是用专业的队列中间件更稳妥。

究竟哪种方案更好呢?

1、Redis中List队列

从最简单的开始: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
消费者这一侧,使用 RPOP 拉取消息:
127.0.0.1:6379> RPOP queue "msg1" 127.0.0.1:6379> RPOP queue "msg2"
这个模型非常简单,也很容易理解:

但这里有个小问题,当队列中

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信