理解 Redis - Publish Subscribe 消息订阅

Posted rachelross

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解 Redis - Publish Subscribe 消息订阅相关的知识,希望对你有一定的参考价值。

在窗口1开通一个名为 redis 的通道:

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

从窗口2传入信息:

127.0.0.1:6379> PUBLISH redis hi
(integer) 1

此时窗口1会收到这条信息:

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

以上, 就是通过 SUBSCRIBE 和 PUBLISH 实现了一个简单的消息传递的过程. 目前我们是有一个窗口开通 redis 通道, 另一个窗口向这个通道传递消息, 大家可以试下再多开一个窗口, 也开通 redis 通道, 然后再向 redis 通道传递消息的时候, 会发现, 这两个通道会同时接收到这条消息.

下面再另开也别窗口, 演示另外一个命令. 这里用命令 PSUBSCRIBE 开通一个通道, 通道名不是具体的, 而是有点像正则匹配, 即凡是向以字母 r 开头的通道发送消息, 这个通道都可以接收:

127.0.0.1:6379> PSUBSCRIBE r*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "r*"
3) (integer) 1

这时, 在另外一个窗口执行:

127.0.0.1:6379> PUBLISH rr "hi"
(integer) 1

这时, 在刚刚开通通道的窗口就可以接收到信息:

127.0.0.1:6379> PSUBSCRIBE r*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "r*"
3) (integer) 1
1) "pmessage"
2) "r*"
3) "rr"
4) "hi"

以上, 就是关于 SUBSCRIBE 和 PUBLISH 的基本原理.

这是关于 redis 学习的最后一篇,  每个命令我都有自己实践, 虽然不能百分百记住, 但是对于五种数据类型, 有了非常清晰的了解, 希望也能对你有所帮助, enjoy~~~

以上是关于理解 Redis - Publish Subscribe 消息订阅的主要内容,如果未能解决你的问题,请参考以下文章

实现OPC UA publish/subscribe单次发送

Redis PUBLISH/SUBSCRIBE 限制

0MQ文档导读

Basic Tutorials of Redis -Publish and Subscribe

就publish/subscribe功能看redis集群模式下的队列技术

如何使用 redis PUBLISH/SUBSCRIBE 和 nodejs 在数据值更改时通知客户端?