Redis 发布订阅机制( pubsub )

    科技2022-08-18  132

    目录 🍋

    1. 前言2. 示例2.1 发布者2.2 订阅者2.3 演示步骤 (redis 客户顿演示步骤) 3. Redis 发布订阅命令4. 参考文献

    1. 前言

      Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。用来进行系统之间消息解耦,类似于 mq,rabbitmq、rocketmq、kafka、activemq 等… 🍏

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

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

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

    2. 示例

      以下实例演示了发布订阅是如何工作的,需要开启两个 redis-cli 客户端。

      在我们实例中我们创建了订阅频道名为 runoobChat:

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

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

    2.1 发布者

    redis 127.0.0.1:6379> PUBLISH runoobChat "Redis PUBLISH test" (integer) 1 redis 127.0.0.1:6379> PUBLISH runoobChat "Learn redis by https://blog.csdn.net/Damao1183297959" (integer) 1

    2.2 订阅者

    127.0.0.1:6379> SUBSCRIBE runoobChat Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "runoobChat" 3) (integer) 1 1) "message" 2) "runoobChat" 3) "Redis PUBLISH Test" 1) "message" 2) "runoobChat" 3) "Learn redis by https://blog.csdn.net/Damao1183297959"

    2.3 演示步骤 (redis 客户顿演示步骤)

    开启 Redis 服务,开启两个 redis-cli 客户端。在第一个 redis-cli 客户端输入 SUBSCRIBE runoobCha,意思是订阅 runoobChat 频道。在第二个 redis-cli 客户端输入 PUBLISH runoobChat "Redis PUBLISH test" 往 runoobChat 频道发送消息,这个时候在第一个 redis-cli 客户端就会看到由第二个 redis-cli 客户端发送的测试消息。

    3. Redis 发布订阅命令

    PUBLISH 将信息 Message 发送到指定的频道 channel 。返回收到消息的客户端数量SUBSCRIBE 订阅指定频道的信息UNSUBSCRIBE 取消订阅指定的频道,如果不指定,则取消订阅所有

    4. 参考文献

    https://www.runoob.com/redis/redis-pub-sub.html 🍑

    Processed: 0.009, SQL: 9