Redis 订阅

一、何为订阅?

所谓订阅,是一种消息通信模式,发送者发送消息,订阅者订阅频道后接收消息。

二、Redis 中的订阅

Redis 中的订阅大体上也是订阅频道、发送消息、接收消息,但有几点细节需要注意:

  • 频道并不属于某个客户端,任何人都有权向任意频道中发送消息
  • 频道无需创建,可以直接订阅和发送
  • 如果客户端订阅某个频道,只要有人向频道中发送消息,客户端便会收到消息

如图所示:

client2、client5、client1 同时订阅了 channel1

当频道发布新消息时,消息就会发送给订阅它的客户端

三、命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 订阅频道
SUBSCRIBE 频道名

// 退订频道
UNSUBSCRIBE 频道名

// 订阅符合匹配模式的所有频道
PSUBSCRIBE 匹配模式

// 退订符合匹配模式的所有频道
PUNSUBSCRIBE 匹配模式

// 返回客户端订阅的符合匹配模式的频道数
PUBSUB NUMPAT 匹配模式

// 返回频道的订阅者数量
PUBSUB NUMSUB 频道名

// 返回符合匹配模式的所有在线的频道
// [这里的在线p是指当前存在订阅者的频道]
PUBSUB CHANNELS 匹配模式

// 将信息发送至指定频道
PUBLISH 频道名 信息

四、示例

订阅者:

1
SUBSCRIBE myChannel

发布者:

1
PUBLISH myChannel Hello

参考