Redis 订阅/发布的用法
2020-12-23 本文已影响0人
phpworkerman
介绍
订阅/发布实现了消息传递机制,发送者发送消息并不是直达接收者,而是通过频道进行传递,接收者关注频道就可以接收消息,不需要知道发送者是谁,这样发送者和接收者之间就实现了解耦。
订阅消息
- 可以同时订阅多个频道
- 订阅成功返回消息数组,第一元素是消息类型,第二个是订阅的频道,第三个是当前订阅的频道的数量
- 订阅/发布与 KEY 所在的空间没有关系,它不受任何级别的干扰,包括不同的数据库编号,当使用不同的数据库进行订阅时,可通过 KEY 添加数据库名称区分。
subscribe news report
# 订阅成功的响应
1) "subscribe"
2) "news"
3) (integer) 1
1) "subscribe"
2) "report"
3) (integer) 2
发布消息
- 发布消息一次只能指定一个频道
- 订阅者消息响应格式,第一个参数为消息类型,第二个是订阅的频道,第三个是频道发送的消息
publish news "China is strong"
publish report "Year's wrok report"
#订阅者接收消息
1) "message"
2) "news"
3) "China is strong"
1) "message"
2) "report"
3) "Year's wrok report"
查看订阅/发布系统的状态
- 支持不同子命令具有不同的查询结果
- channels 子命令后可接参数,使用给定模式的频道
#列出所有活跃频道,订阅者至少有一个
pubsub channels
#列出给定频道的订阅者数量
pubsub numsub news
取消订阅
- 取消订阅如果不指定频道,取消当前客户端所有订阅频道
unsubscribe news
订阅一个或多个符合模式的频道
- 每个模式以 * 作为匹配符
psubscribe new* re*
退订一个或多个符合模式的频道
- 每个模式以 * 作为匹配符
punsubscribe new* re*