Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。
发布者与订阅者不直接通信, 发布者发生到对应channel, 订阅者从channel获取消息
可以有多个订阅者, 订阅者都可以收到消息
redis该功能可以作为常用的发布订阅功能,如果只有一个接收端,也可以作为消息队列进行处理
发布消息
PUBLISH channel value
127.0.0.1:6379> PUBLISH first "1"
(integer) 0
127.0.0.1:6379> PUBLISH second "2"
(integer) 0
127.0.0.1:6379> PUBLISH second "2"
(integer) 1
127.0.0.1:6379> PUBLISH second "4"
(integer) 1
127.0.0.1:6379> PUBLISH second "4"
(integer) 0
在另外一个客户端:
订阅队列
SUBSCRIBE channel
root@dev ~]# /root/redis/src/redis-cli
127.0.0.1:6379> SUBSCRIBE second
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "second"
3) (integer) 1
1) "message"
2) "second"
3) "2"
1) "message"
2) "second"
3) "4"
取消订阅:
UNSUBSCRIBE channel
127.0.0.1:6379> UNSUBSCRIBE second
1) "unsubscribe"
2) "second"
3) (integer) 0
PUBSUB 查看活跃的队列
127.0.0.1:6379> PUBSUB channels
1) "first"