教程 > Redis教程 > Redis 命令 阅读:55

Redis 发布订阅

Redis 发布订阅


发布/订阅(pub/sub)系统是web系统中比较常用的一个功能。可以认为是一种消息通信模式:简单来说就是发布者(pub)发布消息,订阅者(sub)接收消息。传递消息的通道称为channel。

我们可以使用前面讲到的列表(lists)结合lpush命令rpop命令来实现消息队列的功能,但是这里会有一个问题就是很难实现消息多播的功能。 也就是说基于列表的消息队列是一种点对点的强关联的关系

Redis为了消除这种强关联性,引入了另一个概念:频道(channel)。

一个频道可以由任意数量的客户端订阅

redis发布订阅图-客户端订阅

当发布者(publisher)将新的消息推送到频道之后,这个消息会被发送给该频道的三个订阅者

redis发布订阅图-消息发布

示例


接下来我们举例说明,让我们开启三个redis-cli客户端。两个作为订阅者,一个作为发布者。 第一个客户端(订阅者1)

redis 6379> subscribe jiyikChannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "jiyikChannel"
3) (integer) 1

第二个客户端(订阅者2)

redis 6379> subscribe jiyikChannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "jiyikChannel"
3) (integer) 1

订阅者1 和 订阅者2 订阅频道jiyikChannel成功之后,会一直在监听状态。

第三个客户端(发布者)

127.0.0.1:6379> publish jiyikChannel "Publish Subscribe Test"
(integer) 2

当发布者发布信息成功之后,两个订阅者会收到发布者发布的这个信息

Redis发布订阅示例

上面主要使用到了两个命令,发布消息PUBLISH命令和订阅频道SUBSCRIBE命令

相关命令


Redis的发布订阅模块涉及到的命令有六个

序号 命令 说明
1 PUBLISH 将信息发送到频道
2 PUBSUB 查看订阅与发布系统状态
3 PSUBSCRIBE 订阅一个或多个符合给定模式的频道
4 PUNSUBSCRIBE 退订所有给定模式的频道
5 SUBSCRIBE 订阅给定的一个或多个频道的信息
6 UNSUBSCRIBE 指退订给定的频道

查看笔记

扫码一下
查看教程更方便