RedisRedis 发布订阅通信模式 ( 发布订阅模式 | 订阅频道 | 发布消息 | 接收消息 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RedisRedis 发布订阅通信模式 ( 发布订阅模式 | 订阅频道 | 发布消息 | 接收消息 )相关的知识,希望对你有一定的参考价值。

文章目录





一、发布订阅模式



Redis 中 存在一种 发布订阅 消息通信模式 :

  • 消息发布者 : 负责发送消息 , 订阅者需要订阅该发布者频道 ;
  • 消息订阅者 : 负责接收消息 ;

订阅者 先 订阅 发布者频道 , 当 发布者 发布消息时 , 订阅者 会接收到该信息 ;


在 Redis 中 , 发布者 是 消息频道 , 订阅者 是 Redis 客户端 ;

  • 一个 Redis 客户端可以 订阅多个 消息频道 ;
  • 一个 消息频道 可以 被多个 Redis 客户端 订阅 ;

当 消息频道 发送消息后 , 订阅该频道的 客户端 , 就会收到该频道发送的消息 ;





二、订阅频道



订阅频道 : 在一个命令行中 , 执行

subscribe channel1

命令 , 可以 订阅 名称为 channel1 的 消息频道 ;


上述命令执行后 , 在命令行中会 阻塞等待 channel1 的消息到来 ;


代码示例 :

127.0.0.1:6379> subscribe channel1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel1"
3) (integer) 1





三、发布消息



重新打开一个 CMD 命令行工具 , 执行

publish channel1 hello

命令 , 向 channel1 通道中 , 发送 hello 消息 ;


代码示例 :

127.0.0.1:6379> publish channel1 hello
(integer) 1
127.0.0.1:6379>





四、接收消息



命令行 1 中 , 执行 subscribe channel1 命令 , 订阅了 channel1 频道 ;

命令行 2 中 , 执行 publish channel1 hello 命令 , 向 channel1 频道发送了 hello 消息 ;

然后在 命令行 1 中 , 接收到了 hello 消息 ;


代码示例 :

127.0.0.1:6379> subscribe channel1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel1"
3) (integer) 1
1) "message"
2) "channel1"
3) "hello"

接收的消息内容是 :

1) "message"
2) "channel1"
3) "hello"

以上是关于RedisRedis 发布订阅通信模式 ( 发布订阅模式 | 订阅频道 | 发布消息 | 接收消息 )的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ发布-订阅消息模式

#yyds干货盘点# redis | 十七redis之订阅发布

Redis 发布/订阅模式

配置文件发布订阅Java连接RedisRedis篇2

EventBus发布-订阅模式 ( Android 中使用 发布-订阅模式 进行通信 )

Java里观察者模式(订阅发布模式)