Spring Data Redis 教程

Redis 消息介绍

Spring Data 为 Redis 提供了专用的消息传递集成,在功能和命名上类似于 Spring 框架中的 JMS(Java Message Service)集成。

Spring Data Redis 中,RedisTemplate 类用于生成消息。对于类似于 Java EE 消息驱动 Bean 风格的异步接收消息,Spring Data 提供了一个专用的消息侦听器容器,用于创建消息驱动 POJO(MDP)。对于同步接收消息,Spring Data Redis 还提供了 RedisConnection 契约。

Spring Data Redis 中,org.springframework.data.redis.connection 和 org.springfrawork.data.redis.listener 包提供了Redis 消息传递的核心功能。

接下来将简单介绍一下 Redis 的消息发布订阅。

Redis 消息发布订阅

常用术语

频道(Channel):可以理解为一个消息队列

消息(Message):在发布者和消费者之间传递的对象,携带了有效的数据

发布者(Publisher):创建消息,并发布到 Redis 的频道

消费者(Consumer):接收消息,并消费消息

订阅(Subscription):由消费者告诉 Redis,哪些频道是客户端感兴趣的。然后,当 Redis 收到消息后,如果满足匹配条件,则下发到客户端

发布/订阅

Redis 的发布订阅(pub/sub)是一种消息通信模式,该模式大致可分为两个步骤:

(1)发布或生产消息,Redis 将消息发布到频道(Channel)中,由频道下发到客户端(redis cli)

(2)订阅或消费消息,客户端订阅自己感兴趣的频道(Channel),频道收到数据后,下发到客户端

Redis 通过 publish 和 subscribe 等命令实现了订阅与发布模式,这个功能提供两种消息机制,分别是订阅/发布到频道、订阅/发布到模式的客户端。

注意:Redis 客户端可以订阅任意数量的频道(Channel)

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

下图展示了当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:

示例

以下实例演示了发布订阅是如何工作的,需要开启两个 redis-cli 客户端。

客户端一

在我们实例中我们创建了名为 hxstrive 的订阅频道。如下:

D:\server\redis-x64-5.0.14.1> redis-cli
127.0.0.1:6379> subscribe hxstrive
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "hxstrive"
3) (integer) 1
1) "message"
2) "hxstrive"
3) "hi,www.hxstrive.com"
1) "message"
2) "hxstrive"
3) "spring data redis"

客户端二

在频道 hxstrive 发布两次消息,订阅者(客户端一)就能接收到消息。如下:

D:\server\redis-x64-5.0.14.1> redis-cli
127.0.0.1:6379> PUBLISH hxstrive "hi,www.hxstrive.com"
(integer) 1
127.0.0.1:6379> PUBLISH hxstrive "spring data redis"
(integer) 1
127.0.0.1:6379>

到这里就简单介绍了 Redis 的消息发布和订阅,后面将进一步介绍怎样利用 Spring Data Redis 发布消息和消费消息等。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号