在redis中,客户端可以通过订阅特定的channel来接收该channel的消息,这些客户端称为该channel的subscriber
一个channel可以有多个subscriber,一个subscriber可以订阅多个不同的channel
将消息发送给channel的客户端,被称为publisher
客户端除了订阅频道之外,还可以订阅模式(pattern,例如news.*
这样的正则表达式pattern)来接收信息:每当publisher想某个频道发送消息时,不仅频道的subscriber会收到消息,与频道匹配的所有模式的subscriber也会收到消息。
举例说明:
- 现有:
<channel "news.it">
、<channel "news.sport">
、<pattern "new.*">
- 那么订阅
<pattern "new.*">
的 subscriber 将同时收到<channel "news.it">
,<channel "news.sport">
的信息
16.1 PUBLISH:向频道发送消息
|
|
返回值是接收到的客户端数量
16.2 SUBSCRIBE:订阅频道
|
|
- 每订阅成功一个频道,都会返回当前客户端已经订阅的频道数量
- 订阅成功后,就可以接收到频道的消息,消息格式由三部分组成:
- 第一部分,内容为message的字符串
- 第二部分,频道名称
- 第三部分,消息内容
16.3 UNSUBSCRIBE:退订频道
|
|
- 若没有指定channel,那么将退订所有channel
- 返回值:
unsubscribe ChannelName SubscriberCntNow
16.4 PSUBSCRIBE:订阅模式
|
|
- pattern是一个正则表达式,例如
new.*
- 返回值:
psubscribe pattern 当前客户端订阅的pattern数量
- 接收到的模式消息的格式:
pmessage pattern channel message
16.5 PUNSUBSCRIBE:退订模式
|
|
和unsubscribe类似
16.6 PUBSUB:查看发布与订阅相关的信息
- 查看被订阅的频道
pubsub channels
- 查看被订阅的模式
pubsub channels "new.*"
- 查看频道的订阅者数量
pubsub numsub [channel ...]
- 查看被订阅模式的总数量
pubsub numpat