Redis 发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
![image](https://i-blog.csdnimg.cn/blog_migrate/ee99972bdee63e6b8a000dd19a653f15.png)
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
![image](https://i-blog.csdnimg.cn/blog_migrate/7bd50b5f41ca8e05d357efc369f34a31.png)
Redis 发布订阅命令
下表列出了 redis 发布订阅常用命令:
PSUBSCRIBE pattern [pattern …]
订阅一个或多个符合给定模式的频道。
127.0.0.1:6379>psubscribe msg
1) "psubscribe"
2) "msg"
3) "2"
PUBSUB subcommand [argument [argument …]]
查看订阅与发布系统状态。
127.0.0.1:6379>pubsub channels
1) "msg"
127.0.0.1:6379>pubsub channels msg*
1) "msg"
PUBLISH channel message
将信息发送到指定的频道。
127.0.0.1:6379> publish msg "hello"
"1"
PUNSUBSCRIBE [pattern [pattern …]]
退订所有给定模式的频道。
127.0.0.1:6379 >punsubscribe msg
1) "punsubscribe"
2) "msg"
3) "0"
SUBSCRIBE channel [channel …]
订阅给定的一个或多个频道的信息。
127.0.0.1:6379> SUBSCRIBE msg
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "msg"
3) (integer) 1
UNSUBSCRIBE [channel [channel …]]
退订给定的频道。
127.0.0.1:6379> UNSUBSCRIBE msg
1) "unsubscribe"
2) "msg"
3) "0"
实例
订阅频道
redis:0>pubsub channels
1) "msg"
redis:0>pubsub channels msg*
1) "msg"
新开客户端,向指定频道发送消息:
redis:0>publish msg "hello"
"1"
定位频道的客户端将收到消息:
1) "message"
2) "msg"
3) "hello"
1) "message"
2) "msg"
3) "hello"