8.redis发布和订阅

发布和订阅介绍

发布和订阅是进程间的一种消息通信模式,即发送者(pub)发送消息,订阅者(sub)接受消息。订阅只有订阅了指定发送者的频道(channel)才能接受该发送者推送的消息(message),类似微信用户只有订阅了指定的订阅号才能收到该订阅号推送的图文消息。

redis客户端通过subscribe命令订阅频道channel1:
8.redis发布和订阅
发送者通过publish命令将消息message发送频道channel1,并推送到订阅他的客户端:
8.redis发布和订阅

命令

命令 描述
PUBLISH channel message 将消息发送到指定的频道
SUBSCRIBE channel [channel …] 订阅一个或多个频道的消息
PSUBSCRIBE pattern [pattern …] 订阅一个或多个频道符合给定模式的频道
UNSUBSCRIBE [channel [channel …]] 退订一个或多个频道
PUNSUBSCRIBE [pattern [pattern …]] 退订一个或多个频道符合给定模式的频道
PUBSUB subcommand [argument [argument …]] 查看订阅和发布系统状态

实操

订阅者订阅c1,c2和c3三个频道
8.redis发布和订阅
发送者分别给c1,c2和c3分别发送a1,a2和a3消息
8.redis发布和订阅
订阅者可以分别接收到c1,c2和c3分别推送的消息
8.redis发布和订阅
订阅者通过通配符订阅c和a开头的所有频道
8.redis发布和订阅
发送者分别给cc和aa频道发送hellokitty和helloworld消息
8.redis发布和订阅
订阅者订阅的频道匹配cc和aa频道,所以能接收到这两个频道推送的消息
8.redis发布和订阅

总结

  1. 订阅者先订阅频道才能接受发送者发送的消息
  2. 订阅的频道区分大小写

实际应用中消息的发布和订阅通常都不用redis来处理,所以本章只做简单的描述