频道栏目
IT货架 > > 正文
redis-发布订阅
网友分享于:Jun 12, 2018 11:38:51 PM    来源: IT货架   

订阅命令

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 reloadChannelReading messages... (press Ctrl-C to quit)1) "subscribe"2) "commandChannel"3) (integer) 11) "subscribe"2) "reloadChannel"3) (integer) 21) "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) 1localhost:6379> publish commandChannel mkdir(integer) 1localhost:6379> publish reloadChannel appid:345(integer) 1

 

 

 

广告服务联系QQ:1134687142 | 网站地图

版权所有: IT货架- 内容来自互联网,仅供用于技术学习,请遵循相关法律法规. 京ICP备11030978号-1