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

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

2017-04-27 14:13 357 查看
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命令: 返回订阅模式的数量。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: