Redis教程(九) Redis发布与订阅
2017-04-27 14:13
357 查看
Redis教程(九) Redis发布与订阅
概念:
发布者(publisher):发布消息的客户端。
频道(channel):构建在服务器内部,负责接收发布者发送的消息,并将消息转发给频道的订阅者。
模式(pattern):构建在服务器内部,负责对频道进行匹配,当被匹配的频道接到消息时,模式也会将消息转发给模式的订阅者。
订阅者(subscriber):通过订阅频道或者模式来获取消息的客户端。每个频道或者模式都可以有任意多个订阅者。
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命令: 返回订阅模式的数量。
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系列教程
- Redis教程–解析发布与订阅
- Redis教程(九) Redis发布与订阅
- Linux+Redis实战教程_day02_Redis特性(数据库、服务器命令、消息订阅与发布、事务)
- Redis教程03——Redis 发布/订阅(Pub/Sub)
- redis学习笔记六之发布订阅
- Redis 发布与订阅
- redis 发布订阅
- python的redis,实用订阅发布简单实用代码
- redis发布订阅和自定义的命令组合
- redis代码 发布订阅
- redis数据库之订阅和发布
- 数据库同步之SQL Server 2005发布订阅教程
- Redis实战(12)订阅和发布消息
- Spring Data Redis实现一个订阅/发布系统
- Redis系列-JAVA与redis整合-Spring Data Redis实现一个订阅/发布系统
- 六 redis学习笔记之发布订阅
- .redis 发布订阅
- Redis高级实用特性:发布及订阅消息
- NoSQL之Redis高级应用--发布及订阅消息