什么是发布和订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。
Redis 客户端可以订阅任意数量的频道。

本地实现

开启本地 Redis 服务,开启两个 redis-cli 客户端。

在第一个 redis-cli 客户端输入 SUBSCRIBE runoobChat,意思是订阅 runoobChat 频道。

在第二个 redis-cli 客户端输入 PUBLISH runoobChat “Redis PUBLISH test” 往 runoobChat 频道发送消息,这个时候在第一个 redis-cli 客户端就会看到由第二个 redis-cli 客户端发送的测试消息。

redis 127.0.0.1:6379> SUBSCRIBE runoobChat
 
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "runoobChat"
3) (integer) 1
redis 127.0.0.1:6379> PUBLISH runoobChat "Redis PUBLISH test"
(integer) 1
redis 127.0.0.1:6379> PUBLISH runoobChat "Learn redis by runoob.com"
(integer) 1
# 订阅者的客户端会显示如下消息
1) "message"
2) "runoobChat"
3) "Redis PUBLISH test"
1) "message"
2) "runoobChat"
3) "Learn redis by runoob.com"

命令

SUBSCRIBE channel [channel ...]
订阅给定的一个或多个频道的信息。
PSUBSCRIBE pattern [pattern ...]
订阅一个或多个符合给定模式的频道。
UNSUBSCRIBE [channel [channel ...]]
退订给定的频道。
PUNSUBSCRIBE [pattern [pattern ...]]
退订所有给定模式的频道。
PUBSUB subcommand [argument [argument ...]]
查看订阅与发布系统状态
PUBLISH channel message
信息发送到指定的频道。

相关文档

Redis 官网文档:Pub/Sub – Redis
菜鸟教程文档:Redis 发布订阅 | 菜鸟教程