Redis做消息队列
(2023-11-27 13:20:53)分类: 数据库es |
消息队列(Message Queue)是一种应用间的通信方式,是为了方便业务场景中数据的传输和处理。
- 消息队列流程中有三个角色:生产者、消费者、消息处理中心。生产者就是发啊送消息的,消费者就是接收消息的,消息处理中心就是指消息队列。
- 使用消息队列,生产者将数据发送到消息队列,不用等待消费者的响应消息,实现了数据的异步处理,使整个过程松耦合。
-
作为消息队列,最重要的是它的可靠性。可靠性既要保证数据不能丢失,又要能在功能上满足业务上的种种需求:数据只被消费一次,数据可以被多次消费,数据要保证顺序等等。
Redis做消息队列
Redis设计初衷是做缓存的,并不是消息队列。一开始作者的建议也是不要使用redis去做消息队列。但随着越来越多的人使用redis去做去消息队列,redis的作者终于在 Redis 5.0 版本,把 disque 功能移植到了 Redis 中,并给它定义了一个新的数据类型:Stream。
Redis做消息队列,主要有3种模式来实现。 - List 队列
- 发布/订阅模型:Pub/Sub
- Stream数据
1. 最简单的:使用 List队列
当业务需求比较简单的时候,可以使用List来实现消息队列。
因为 List
底层的实现就是一个链表
,在头部和尾部操作元素,时间复杂度都是
O(1),这意味着它非常符合消息队列的模型。
Redis中也提供了方法来操作数据,可以左进右出,右进左出
- 生产者使用 LPUSH 发布消息:
作者:轻轻敲醒沉睡的心灵
链接:https://www.jianshu.com/p/a135f13ff8d7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
前一篇:Redis做消息队列