您的位置:首页 > 数据库 > Redis

Redis教程(九) Redis发布与订阅

2016-09-29 14:27 253 查看
 
 
Redis教程(九)
Redis发布与订阅
 
 

1 Redis发布与订阅

Redis
的发布与订阅功能可以让用户将消息同时发送给多个客户端。

概念:

  
发布者(publisher):发布消息的客户端。

  
频道(channel):构建在服务器内部,负责接收发布者发送的消息,并将消息转发给频道的订阅者。

  
模式(pattern):构建在服务器内部,负责对频道进行匹配,当被匹配的频道接到消息时,模式也会将消息转发给模式的订阅者。

  
订阅者(subscriber):通过订阅频道或者模式来获取消息的客户端。每个频道或者模式都可以有任意多个订阅者。

 

1.1 发布与订阅类型

1、
频道客户端订阅与消息发布:

B
、 C
、 D
三个客户端正在订阅 news::it
频道。当客户端 A
向 news::it
频道发送消息
“hello world”
时,该消息将被频道转发至 B
、 C
、 D
三个客户端。



 
2、
模式客户端订阅与消息发布:

   
客户端 C
和 D
订阅了 news::[ie]t
模式,而这个模式又和 news::it
、 news::et
两个频道匹配,当 news::it
频道或者 news::et
频道接收到消息的时候,这些消息不仅会被转发给频道的订阅者,也会被转发给客户端 C
和 D



 
3、
模式订阅者接收消息示例:





 
4、
SUBSCRIBE命令:订阅给定的一个或多个频道的信息。
 
客户端一:远程连接Redis:/usr/local/software/redis-3.2.1/src/redis-cli
-h 127.0.0.1 -p 6379-a "mypass"
 命令:SUBSCRIBE
news::it



# "subscribe"       #
返回值的类型:显示订阅成功。
# "news::it"        #
订阅的频道名字
# (integer) 1       #
目前已订阅的频道数量
# "message"        #
返回值的类型:信息
# "news::it"       #
来源
 
5、
PUBLISH命令:将信息
message 发送到指定的频道 channel
。返回值:接收到信息 message
的订阅者数量。
 
客户端二:远程连接Redis:/usr/local/software/redis-3.2.1/src/redis-cli-h
127.0.0.1 -p 6379 -a "mypass"
PUBLISH news::it 'send message to news::it number1'



 
客户端一:订阅者接收到的消息。



 
6、
PUBSUB命令:PUBSUB
是一个查看订阅与发布系统状态的内省命令,
它由数个不同格式的子命令组成,
以下将分别对这些子命令进行介绍。列出当前的活跃频道。活跃频道指的是那些至少有一个订阅者的频道,
订阅模式的客户端不计算在内。
pattern
参数是可选的:
   
如果不给出pattern
参数,那么列出订阅与发布系统中的所有活跃频道。
       
如果给出 pattern
参数,那么只列出和给定模式pattern
相匹配的那些活跃频道。
   



 
7、
  PUBSUB NUMSUB命令:返回给定频道的订阅者数量,
订阅模式的客户端不计算在内。



 
8、
PUBSUB NUMPAT命令:
返回订阅模式的数量。



 

 

                --以上为《Redis教程(九) Redis发布与订阅》,如有不当之处请指出,我后续逐步完善更正,大家共同提高。谢谢大家对我的关注。
                                                                                                                                                                                      ——厚积薄发(yuanxw)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: