头图

  一般来说消息队列有两种场景,一种是发布者订阅者模式,而另一种是生产者消费者模式。这两种场景的消息队列Redis都能够实现。
  发布者和订阅者通过channel频道进行解偶, 订阅者监听某个channel的消息,当发布者向该channel推送消息时,订阅该channel的消费者都可以收到消息。视频讲解如下:

https://www.bilibili.com/video/BV1kS411P7Qy/?aid=1905645112&c...

  下图展示了Redis发布者订阅者模式的架构。
在这里插入图片描述
  Redis提供的相关操作命令如下:

  • publish:发布消息
命令为格式:publish channel名称 "消息内容"
  • subscribe: 订阅消息
命令为格式:subscribe channel名称
  • psubscribe: 使用通配符定义消息
命令为格式:psubscribe channel*名称

  在发布者和订阅者模式下,Redis维护一个数据字典pubsub_channels用于保存channel以及订阅者的关系,结构如下图所示。
在这里插入图片描述
  由于Redis支持的消息类型是广播类型的消息,因此这里需要开启三个会话的窗口。一个作为消息的发布者,另外两个作为消息的订阅者。下面是具体的操作步骤。
(1)在消息订阅者的两个会话窗口中启动消息订阅者。

127.0.0.1:6379> subscribe channel1
Reading messages... (press Ctrl-C to quit)

(2)在消息发布者的会话窗口中发布消息。

127.0.0.1:6379> publish channel1  helloworld
(integer) 2

(3)此时在消息订阅者的两个会话窗口中将成功接收到发布的消息,如下图所示。
在这里插入图片描述


赵渝强老师
33 声望12 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...