Redis发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

发布者不是计划发送消息给特定的接收者(订阅者),而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅
订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的
发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑
客户端发到频道的消息,将会被推送到所有订阅此频道的客户端
客户端不需要主动去获取消息,只需要订阅频道,这个频道的内容就会被推送过来

Redis 客户端可以订阅任意数量的频道。

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:

 实例

以下实例演示了发布订阅是如何工作的。在我们实例中我们创建了订阅频道名为 redisChat:

 现在,我们先重新开启个 redis 客户端,然后在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息。

发布订阅模式中的角色

发布者(publisher)
订阅者(subscriber)
频道(channel)

Redis 发布订阅命令

下表列出了 redis 发布订阅常用命令:

1> psubscribe 命令:订阅一个或多个符合给定模式的频道

格式:PSUBSCRIBE pattern [pattern ...]

2> pubsub 命令:查看订阅与发布系统状态

格式:PUBSUB subcommand [argument [argument ...]]

3> publish 命令:将信息发送到指定的频道

格式:PUBLISH channel message

4> punsubscribe 命令:退订所有给定模式的频道

格式:PUNSUBSCRIBE [pattern [pattern ...]]

5> subscribe 命令:订阅给定的一个或多个频道的信息

格式:SUBSCRIBE channel [channel ...]

6> unsubscribe 命令:指退订给定的频道

格式:UNSUBSCRIBE [channel [channel ...]]

原文地址:https://www.cnblogs.com/dabrk/p/12134093.html