首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“一招制胜”Redis消息机制——“发布/订阅”

大家晚上好,今天的内容是关于Redis的“发布/订阅”的消息机制的。

说道“消息机制”,在前几天总结Redis列表数据结构应用场景的时候曾提到,可以通过列表的lpush+brpop实现“阻塞消息队列”。那么,除了通过列表完成消息队列,还有没有其它的消息机制呢?当然有!这就是Redis提供的基于“发布/订阅”模式的消息机制,在此种模式下,消息的发布者和订阅者并不直接进行通信,而是发布者将消息发布到指定的频道(channel)上,这时 ,订阅该频道的每个客户端就可以收到该消息了。示例图如下:

看两个命令吧:

发布消息

publish channel message

发布者向某频道发布消息

订阅消息

subscribe channel [channel...]

订阅者订阅若干个频道

实际操作是这样的:

1.发布者向频道“channel:music”发送了一条消息,由于此时没有订阅者,所以返回结果为0,可见,返回结果为订阅者的个数

2.订阅者订阅这个频道

此时,订阅者在执行订阅命令之后进入了订阅状态,而且,这个订阅者并未接收到发布者之前在该频道发布的消息,因为Redis不会对发布的消息进行持久化。

3. 发布者再发送另一条消息:

4.这一次,订阅者就能收到该频道的消息了:

虽然Redis的消息队列与专业的消息队列Kafka相比还比较简陋,但还是那句话,Redis赢就赢在简单!

各位,冲啊!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171213G0V22500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券