在窗口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~~~