简介
发布者和订阅者都是Redis客户端。发布者可以发消息到任意多个频道上,订阅者可以订阅任意多个频道。
订阅命令
subscribe channel [channel ...]:返回的数字 1 , 2 表示订阅的第n个频道,频道返回的消息类型是message
1127.0.0.1:6379> subscribe education health 2Reading messages... (press Ctrl-C to quit) 31) "subscribe" 42) "education" 53) (integer) 1 61) "subscribe" 72) "health" 83) (integer) 2
psubscribe channel [channel ...] :p—pattern,模式匹配,相当正则。假如有频道 news.it 、news.beauty 、newsPE , health 、那只有前两个符合正则news.*,那么前两个频道的消息,订阅者都能接受。频道返回的消息类型是pmessage
1127.0.0.1:6379> subscribe news.* 2Reading messages... (press Ctrl-C to quit) 31) "subscribe" 42) "news.*" 53) (integer) 1
unsubscribe [channel [channel ...]] : 取消通过subscribe订阅的频道 ,如果不加传入频道参数,客户端使用 SUBSCRIBE 命令订阅的所有频道都会被退订
punsubscribe [channel [channel ...]] :取消通过psubscribe订阅的频道 ,如果不加传入频道参数,客户端使用 PSUBSCRIBE 命令订阅的所有频道都会被退订
redis一旦接受了一条订阅命令之后,就不能再接受下一条命令,订阅命令就是阻塞式的。只有强行退出Ctrl+C,重启客户端,才能输入别的命令。
发布命令
publish channel message :返回的整数表示接收到该消息的客户端总数。
1C:\Users\user>redis-cli 2127.0.0.1:6379> publish new.love "love forever" 3(integer) 0 4127.0.0.1:6379> publish new.* "hehe" 5(integer) 0 6127.0.0.1:6379> publish foo "food" 7(integer) 1 8127.0.0.1:6379> publish foo "food1" 9(integer) 3 10127.0.0.1:6379> publish foo "bibi" 11(integer) 3 12127.0.0.1:6379> publish foo "hiie" 13(integer) 2 14127.0.0.1:6379> publish foo "oooo" 15(integer) 1 16127.0.0.1:6379> publish aaaBB "shenjingbing" 17(integer) 1