资讯详情

Redis - 3、发布和订阅

1.什么是发布和订阅?

redis发布订阅(pub/sub)是一种新闻通信模式:发布者(pub)发布消息,订阅者(sub)接收消息。

redis客户可以订阅任何数量的频道。

2、redis发布和订阅

2.1.客户端可订阅如下图所示

2.2.在此频道发布消息后,消息将发送给订阅客户

3.实现发布和订阅的命令

3.1.打开客户端订阅channel1

订阅命令: subscribe channel1 channel2 ... ,可订阅多个频道。

3.2.打开另一个客户端,给它channel1发布消息hello

发标信息命令: publish channel 消息 ,返回值表示有几个订阅者

3.3.切换到订阅者窗口,可以看到收到的信息

4.发布和订阅常用命令

4.1、subscribe:订阅一个或多个频道

SUBSCRIBE channel [channel ...] 

订阅一个或多个频道的信息。 返回值:收到的信息(见下面的代码说明)。

# 订阅 msg 和 chat_room 两个频道  # 1 - 6 行是执行 subscribe 后续反馈信息 # 第 7 - 9 行是收到的第一条信息 # 第 10 - 12 行是第二条  redis> subscribe msg chat_room Reading messages... (press Ctrl-C to quit) 1) "subscribe" # 返回值类型:显示订阅成功 2) "msg"       # 频道名称的订阅 3) (integer) 1 # 目前已订阅的频道数量  1) "subscribe" 2) "chat_room" 3) (integer) 2  1) "message"    # 返回值类型:信息 2) "msg"        # 来源(从那个频道发送) 3) "hello moto" # 信息内容  1) "message" 2) "chat_room" 3) "testing...haha" 

4.2、publish:向指定发布到指定的频道

PUBLISH channel message 

将信息 message 发送到指定的频道 channel 。 返回值:收到信息 message 订阅者数量。

# 发送信息的频道没有订阅者 redis> publish bad_channel "can any body hear me?" (integer) 0 # 向订阅者频道发送信息 redis> publish msg "good morning" (integer) 1 # 向多个订阅者频道发送信息 redis> publish chat_ room "hello~ everyone" (integer) 3 

4.3、psubscribe:订阅一个或多个符合给定模式的频道

PSUBSCRIBE pattern [pattern ...] 

符合给定模式的一个或多个频道订阅。 每个模式以 * 例如,作为匹配符 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、it.tweets 等等), news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today 等等),诸如此类。

# 订阅 news.* 和 tweet.* 两个模式  # 第 1 - 6 行是执行 psubscribe 后续反馈信息 # 第 7 - 10 第一条信息是收到的 # 第 11 - 14 是第二条 # 以此类推。。。  redis> psubscribe news.* tweet.* Reading messages... (press Ctrl-C to quit) 1) "psubscribe"          # 返回值类型:显示订阅成功 2) "news.*"              # 订阅的模式 3) (integer) 1           # 目前订阅模式的数量  1) "psubscribe" 2) "tweet.*" 3) (integer) 2  1) "pmessage"            # 返回值类型:信息 2) "news.*"              # 信息匹配模式 3) "news.it"             # 信息本身的目标频道 4) "Google buy Motorola" # 信息的内容  1) "pmessage" 2) "tweet.*" 3) "tweet.huangz" 4) "hello"  1) "pmessage" 2) "tweet.*" 3) "tweet.joe" 4) "@huangz morning"  1) "pmessage" 2) "news.*" 3) "news.life" 4) "An apple a day, keep doctors away" 

标签: sub灯具电线连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台