发布订阅(又称pub/sub)的特点是是订阅者(listener)负责订阅频道(channel),发送者(publisher)负责向频道发送二进制字符串消息。每当有消息被发送至给定频道时,频道的所有订阅者都会收到消息。
订阅者可以同时订阅多个频道,发送者可以再多个频道发送消息。
相关的命令如下:
PUBLISH,SUBSCRIBE ,UNSUBSCRIBE命令应该都比较好理解。
PSUBSCRIBE ,PUNSUBSCRIBE是用了类似正则表达式的方式
# it*匹配所有以it开头的频道,如it.news,it.blog
PUNSUBSCRIBE it.*
打开第一个客户端,订阅一个channel
SUBSCRIBE container
打开第二个客户端,往channel中发送消息
PUBLISH container msg1 PUBLISH container msg2
此时第一个客户端输出第二个客户端发送的文字
第一个客户端
127.0.0.1:6379> SUBSCRIBE container Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "container" 3) (integer) 1 1) "message" 2) "container" 3) "msg1" 1) "message" 2) "container" 3) "msg2"
第二个客户端
127.0.0.1:6379> PUBLISH container msg1 (integer) 1 127.0.0.1:6379> PUBLISH container msg2 (integer) 1 127.0.0.1:6379>
代码实现
JedisUtil工具类
发布者
订阅者
测试类