Redis发布与发布功能(Pub/Sub
)是基于事件作为基本的通信机制,是目前应用比较普遍的通信模型,它的目的主要是解除消息的发布者与订阅者之间的耦合关系。
Redis作为消息发布和订阅之间的服务器,起到桥梁的作用,在Redis里面有一个channel
的概念,也就是频道,发布者通过指定发布到某个频道,然后只要有订阅者订阅了该频道,该消息就会发送给订阅者。
1 发布消息
Redis中发布消息的命令是publish
publish msg 'hello redis'
msg
表示频道的名称,hello redis
表示发布的内容,这样就完成了一个消息的发布,后面的返回0
表示0人订阅。
2 订阅频道
订阅者的命令subscribe
subscribe msg: msg
表示频道的名称,订阅后返回的结果中由三条信息,第一个表示类型、第二个表示订阅的频道,第三个表示订阅的数量。可以看到发布者发布的消息,订阅者都会实时的接收到,并发订阅者收到的信息中也会出现三条信息,分别表示:返回值的类型、频道名称、消息内容。
3 若是想取消之前的订阅可以使用unsubscribe命令,输入命令后,返回以下结果
它分别表示:返回值的类型、频道的名称、该频道订阅的数量。
4 按模式订阅
除了直接以特定的名称进行订阅,还可以按照模式进行订阅,模式的方式进行订阅可以一次订阅多个频道,按照模式进行订阅的命令为psubscribe
,返回如下结果:
分别表示:返回的类型(表示按模式订阅类型)、订阅的模式、订阅数。
5 取消按模式订阅
取消按模式订阅模式的命令为punsubscribe ,返回如下结果:
分别表示:返回的类型(表示按模式订阅类型)、订阅的模式、订阅数。
6 查看某一个模式下订阅数是大于零的频道,可以使用如下格式的命令进行操作
pubsub channels msg* --msg 为频道
7 假查看某一个频道的订阅数,可以使用如下命令
pubsub numsub msg
8 查看按照模式的订阅数,可以使用如下命令进行操作:
pubsub numpat