订阅命令
SUBSCRIBE channel[channel …]
channel:订阅的渠道,可以使用SUBSCRIBE 订阅多个渠道
SUBSCRIBE 命令执行后,表明当前线程时入订阅状态,只能接收服务端发来的订阅信息,或执行订阅相关的命令,如取消订阅。
SUBSCRIBE 命令执行后,接收到的信息类型:
1.SUBSCRIBE channel subscribeChannelNum
SUBSCRIBE 命令执行后立即返回的信息:
Subscribe :表明订阅信息类型,
channel :表明订阅的渠道
subscribeChannelNum :当前客户端订阅的渠道数据(即 SUBSCRIBE 命令中channel的数量)
2.MESSAGE channel content
当服务端渠道上有消息发布时,当前订阅线程获取信息
MESSAGE :表明为收到消息类型
channel :收到消息的渠道
content :收到消息的内容
3. UNSUBSCRIBE channel subscribeChannelNum
当前订阅线程取消了对某个渠道的订阅
UNSUBSCRIBE :表明取消渠道订阅类型
channel :取消的订阅渠道
subscribeChannelNum :当前订阅线程还在订阅几个渠道,当订阅渠道数为0时,退出订阅状态。
发布命令
PUBLISH channel message
向某个渠道发送消息
channel :渠道名称
message:消息类型
PUBLISH 命令执行后,立即返回,返回值表示接收到这条消息的订阅者数量。 Redis不会持久化消息,因此订阅端的不能接收到订阅开始时间之间该渠道上发布过的消息。
取消订阅:
UNSUBSCRIBE channel [channel ...]
在订阅状态下执行 UNSUBSCRIBE ,可以取消一个或多个渠道的订阅
localhost:6379> subscribe commandChannel reloadChannel Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "commandChannel" 3) (integer) 1 1) "subscribe" 2) "reloadChannel" 3) (integer) 2 1) "message" 2) "commandChannel" 3) "ftpget" 1) "message" 2) "commandChannel" 3) "mkdir" 1) "message" 2) "reloadChannel" 3) "appid:345"
在另一个redis客户端执行:
localhost:6379> publish commandChannel ftpget (integer) 1 localhost:6379> publish commandChannel mkdir (integer) 1 localhost:6379> publish reloadChannel appid:345 (integer) 1