"Redis通过PUBLISH
、SUBSCRIBE
等命令实现发布与订阅模式。
举例:QQ群的公告,单个发布者,多个收听着。
发布/订阅
PUBLISH 频道 消息
将消息发布到指定的频道。
.
SUBSCRIBE 频道1 [频道2] [...]
可同时订阅多个频道。
.
UNSUBSCRIBE 频道1 [频道2]
取消订阅指定的频道,如果不指定频道则会取消订阅所有频道。
.
PSUBSCRIBE [匹配模式1] [匹配模式2]
订阅一个或多个符合给定模式的频道,每个模式以"*
"作为匹配符,例如"re*
"见匹配所有以"re
"开头的频道。
news.*
匹配所有以news.
开头的频道(news.it 、 news.global.today 等等),诸如此类。
.
PUNSUBSCRIBE [匹配模式1] [匹配模式2]
退订指定的规则的频道,如果未指定参数,则退订所有规则的频道。
.
PUBSUB subcommand [argument [argument ...]]
查看订阅与发布系统状态。
.
注意:
使用发布订阅模式实现的消息队列,当有客户端订阅频道后,只能接收到后续发布到该频道的消息。
之前发送的不会缓存,必须Provider和Consumer同时在线。
下面将以
SUBSCRIBE
与PUBLISH
举例:
.
启动两个窗口,进入redis-cli客户端,并订阅频道,如下图:
在启动一个新窗口进入redis-cli客户端,开始向频道channel
发布消息:
此时,切回订阅者窗口,即可看到其发布的"PONG"消息。
需要注意的是,如果发送中文,则显示的是二进制。
"