前言
一、是什么?
redis发布与订阅是一种消息通信模式,发送者publisher发送消息,订阅者subscriber接受消息,一旦发布者将消息发布到了某个频道,那么订阅这个频道的订阅者就都可以收到消息了,这跟rabbitmq消息队列是一样的原理。
二、使用步骤
1.开启linux服务器,建立两个客户端
这里是使用本地虚拟机开启linux服务器的。
通过xshell连接服务器,开启了redis服务,并建立了两个客户端,至此环境已经搭建好了
2.订阅与发布
#一个客户端发布了通过myChannel发布了消息如下所示。
[root@localhost bin]# redis-cli -p 6379
127.0.0.1:6379> publish myChannel helloHaiHui~HardWorking
(integer) 0
127.0.0.1:6379> publish myChannel helloHaiHui
(integer) 0
127.0.0.1:6379> publish myChannel "helloHaiHui"
(integer) 1
127.0.0.1:6379> publish myChannel "you should hard working"
(integer) 1
127.0.0.1:6379> publish myChannel 123456
(integer) 1
127.0.0.1:6379>
#另一个客户端开启之后,先订阅myChannel频道,然后就可以实时监听消息了
[root@localhost bin]# redis-cli -p 6379
127.0.0.1:6379> subscribe myChannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "myChannel"
3) (integer) 1
#观察规律会发现,三个一组
1) "message"
2) "myChannel"
3) "helloHaiHui"
#观察规律会发现,三个一组
1) "message"
2) "myChannel"
3) "you should hard working"
#观察规律会发现,三个一组
1) "message"
2) "myChannel"
3) "123456"
#其他命令
127.0.0.1:6379> unsubscribe myChannel #退订频道
1) "unsubscribe"
2) "myChannel"
3) (integer) 0
127.0.0.1:6379> pubsub channels #查看所有的订阅的频道
1) "myChannel"
127.0.0.1:6379>
三、总结
序号 | 命令及描述 |
---|---|
1 | [PSUBSCRIBE pattern pattern …] 订阅一个或多个符合给定模式的频道。 |
2 | [PUBSUB subcommand argument [argument …]] 查看订阅与发布系统状态。 |
3 | PUBLISH channel message 将信息发送到指定的频道。 |
4 | [PUNSUBSCRIBE pattern [pattern …]] 退订所有给定模式的频道。 |
5 | [SUBSCRIBE channel channel …] 订阅给定的一个或多个频道的信息。 |
6 | [UNSUBSCRIBE channel [channel …]] 指退订给定的频道。 |
至此,发布订阅讲解完毕!