本文为搬运,根据自己理解稍作修改,支持原创:https://mp.weixin.qq.com/s/G31OEGmi0OtTBGIJT8g4jQ。
注 :文章最后关于技术选型方面的探讨干货满满,强烈建议一键三连
前言
关于「把 Redis 当作队列来用是否合适」的问题有些人表示赞成,也些人则反对。Redis 很轻量,用作队列很方便,但是 Redis 会丢数据,所以很多人认为最好还是用专业的队列中间件更稳妥。
what's the 队列
场景一
如果业务需求足够简单,想把 Redis 当作队列来使用,最先想到的肯定是 Redis 的 List 数据类型。因为 List 底层的实现就是一个链表,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型。
如果把 List 当作队列,可以这么来用。
127.0.0.1:6379> LPUSH queue msg1 (integer) 1 127.0.0.1:6379> LPUSH queue msg2 (integer) 2