目录 🍋
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 🍑