使用 redis 发布订阅

Redis 已发布/订阅发送消息。这是通过订阅频道和发布到频道来处理的。是的,订阅者将订阅一个或多个频道。发布者无需知道谁是所有订阅者。相反,发布者将发布到特定频道。订阅该频道的所有订阅者都将收到该消息。发布者和订阅者的这种分离可以实现更大的可扩展性和更动态的网络拓扑。

示例: 用户订阅了 2 个频道,例如 foo&boo

SUBSCRIBE foo boo

在 redis-client1 的控制台中:

127.0.0.1:6379> SUBSCRIBE foo boo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "boo"
3) (integer) 2

它将开始收听消息。发布时将获取相应频道的数据。

例如: 当想要向与 boo 连接的所有订户发送消息时,需要发布到该频道。

PUBLISH boo "Hello Boo"

在 redis-client1 的控制台中:

1) "message"
2) "boo" //channel name
3) "Hello Boo" //Actual data

要在任何时候取消订阅频道,请使用

UNSUBSCRIBE // to unsubscribe from all channels
UNSUBSCRIBE foo // to unsubscribe from specific channel

也可以根据模式订阅。当通道名称不确定/想要根据模式使用 PSUBSCRIBE 进行订阅时。

与基于模式的取消订阅类似,使用 PUNSUBSCRIBE