理解 Redis(9) - Publish Subscribe 消息订阅
程序员文章站
2022-04-23 09:11:09
在窗口1开通一个名为 redis 的通道: 从窗口2传入信息: 此时窗口1会收到这条信息: 以上, 就是通过 SUBSCRIBE 和 PUBLISH 实现了一个简单的消息传递的过程. 目前我们是有一个窗口开通 redis 通道, 另一个窗口向这个通道传递消息, 大家可以试下再多开一个窗口, 也开通 ......
在窗口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~~~