Redis pub/sub 发布订阅机制原理与实战

本文深入探讨Redis的发布/订阅(Pub/Sub)机制,包括频道和模式的实现方式,通过实例展示如何使用Redisson与SpringBoot进行实战。文章还解析了发布订阅的内部原理,并列举了适用于发布订阅的典型场景,如哨兵间通信和轻量级消息队列。
摘要由CSDN通过智能技术生成

“65 哥,如果你交了个漂亮小姐姐做女朋友,你会通过什么方式将这个消息广而告之给你的微信好友?“

“那不得拍点女朋友的美照 + 亲密照弄一个九宫格图文消息在朋友圈发布大肆宣传,暴击单身狗。”

像这种 65 哥通过朋友圈发布消息,关注 65 哥的好友能收到通知的场景叫做「发布/订阅机制」。

今天不聊小姐姐,深入了解下 「Redis 发布/订阅机制」。的原理与实战运用。

Redis 通过 SUBSCRIBEUNSUBSCRIBEPUBLISH 实现发布订阅消息传递模式,Redis 提供了两种模式实现,分别是「发布/订阅到频道」和「发布\订阅到模式」。

Redis 发布订阅简介

Redis 发布订阅(Pus/Sub)是一种消息通信模式:发送者通过 PUBLISH发布消息,订阅者通过 SUBSCRIBE 订阅接收消息或通过UNSUBSCRIBE 取消订阅。

主要包含三个部分组成:「发布者」、「订阅者」、「Channel」。

发布者和订阅者属于客户端,Channel 是 Redis 服务端,发布者将消息发布到频道,订阅这个频道的订阅者则收到消息。

如下图所示,三个「订阅者」订阅「ChannelA」频道:

这时候,小组长往「ChannelA」发布消息,这个消息的订阅者就会收到消息「关注码哥字节,提升技术」:

Pub/Sub 实战

废话不多说,知道基本概念以后,学习一个技术第一步先把它跑起来,接着才是探索原理,从而达到「知其然,知其所以然」的境界 。

一共有两种模式实现「发布\订阅」:

  • 使用频道(Channel)的发布订阅;
  • 使用模式(Pattern)的发布订阅。

需要注意的是,发布订阅机制与 db 空间无关,比如在 db 10 发布, db0 的订阅者也会收到消息。

通过频道(Channel)实现

三步走:

  1. 订阅者订阅频道;
  2. 发布者向「频道」发布消息;
  3. 所有订阅「频道」的订阅者收到消息。

订阅者订阅频道

使用 SUBSCRIBE channel [channel ...]订阅一个或者多个频道,O(n) 时间复杂度,n = 订阅的 Channel 数量。

SUBSCRIBE develop
Reading messages... (press Ctrl-C to quit)
1) "subscribe" // 消息类型
2) "develop" // 频道
3) (integer) 1 // 消息内容
复制代码

执行该指令后,客户端进入订阅状态,订阅者只能使用subscribeunsubscribepsubscribepunsubscribe这四个属于"发布/订阅" 的指令。

客户端「肖菜鸡」订阅了 「develop」频道接受组长的消息,消息响应体分别表示:

  • 消息类型:subscribe、m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值