Redis 发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息
举一个实例
# 第一步,创建订阅频道为redisChat
127.0.0.1:6379> subscribe redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
# 第二步,在重新开启一个redis客户端,然后在同一频道redisChat发布两次消息,订阅者能接收到消息
127.0.0.1:6379> publish redisChat "Redis is a great caching technique"
(integer) 1
127.0.0.1:6379> publish redisChat "Learn redis by runoob.com"
(integer) 1
# 第三步,订阅者客户端会展示如下消息
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by runoob.com"
psubscribe pattern [pattern…]
描述:命令订阅一个或多个符合给定模式的频道,每个模式以*作为匹配符,比如it*匹配所有以it开头的频道(it.news, it.blog,it.tweets等等)。new.*匹配所有以new.开头的频道(news.it,news.global.today等等)
返回值:接收到的消息
# 订阅mychannel频道
127.0.0.1:6379> psubscribe mychannel
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "mychannel"
3) (integer) 1
pubsub subcommand [argument [argument]]
描述:pubsub 命令用于查看订阅与发布系统状态,它由数个不同格式的子命令组成
返回值:由活跃频道组成的列表
127.0.0.1:6379> pubsub channels
(empty list or set)
publish channel message
描述:用于将信息发送到指定的频道
返回值:接收到信息的订阅者数量
# 将 "hello, i am here" 发送到频道mychannel
127.0.0.1:6379> publish mychannel "hello, i am here"
(integer) 1
# 客户端订阅了mychannel接收到数据
127.0.0.1:6379> psubscribe mychannel
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "mychannel"
3) (integer) 1
1) "pmessage"
2) "mychannel"
3) "mychannel"
4) "hello, i am here"
subscribe channel [channel …]
描述:用于订阅给定的一个或多个频道的信息
返回值:接收到的信息
127.0.0.1:6379> subscribe mychannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "mychannel"
3) (integer) 1
1) "message"
2) "mychannel"
3) "test"