原标题:Spring认证中国教育管理中心-Spring Data Redis框架教程三
10.15.支持类
Packageorg.springframework.data.redis.support提供了各种可重用的组件,这些组件依赖于 Redis 作为后备存储。目前,该包包含基于 Redis 的各种基于 JDK 的接口实现,例如原子计数器和 JDK集合。
原子计数器可以轻松包装 Redis 密钥增量,而集合可以轻松管理 Redis 密钥,同时将存储暴露或 API 泄漏降至最低。特别是,RedisSet和RedisZSet接口提供了对 Redis 支持的集合操作的轻松访问,例如intersection和union。RedisList实现List,Queue以及Deque合同(和它们的等效阻挡兄弟姐妹)上的Redis的顶部,露出存储作为FIFO(先入先出),LIFO(后进先出)或封端的集合以最小的配置. 以下示例显示了使用 的 bean 的配置RedisList:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="queue" class="org.springframework.data.redis.support.collections.DefaultRedisList">
<constructor-arg ref="redisTemplate"/>
<constructor-arg value="queue-key"/>
</bean>
</beans>
以下示例显示了一个 Java 配置示例Deque:
public class AnotherExample {
// injected
private Deque<String> queue;
public void addTag(String tag) {
queue.push(tag);
}
}
如前面的示例所示,消费代码与实际存储实现分离。事实上,没有任何迹象表明在下面使用了Redis。这使得从开发环境到生产环境的转变变得透明,并大大提高了可测试性(Redis 实现可以用内存中的实现代替)。
1.响应式Redis支持
本节介绍反应式 Redis 支持以及如何开始。响应式 Redis 支持自然与命令式 Redis 支持有一定的重叠。
11.1.Redis 要求
Spring Data Redis 目前与Lettuce集成,作为唯一的反应式 Java 连接器。Project Reactor用作反应式组合库。
11.2.使用响应式驱动程序连接到 Redis
使用 Redis 和 Spring 时的首要任务之一是通过 IoC 容器连接到存储。为此,需要一个 Java 连接器(或绑定)。无论你选择的库中,你必须使用
org.springframework.data.redis.connection包及其ReactiveRedisConnection和ReactiveRedisConnectionFactory接口的工作和取得积极connections对Redis的。
11.2.1.Redis 操作模式
Redis 可以作为独立服务器运行,使用Redis Sentinel或以Redis 集群模式运行。 Lettuce支持所有前面提到的连接类型。
11.2.2.ReactiveRedisConnection和ReactiveRedisConnectionFactory
ReactiveRedisConnection是 Redis 通信的核心,因为它处理与 Redis 后端的通信。它还自动将底层驱动程序异常转换为 Spring 一致的 DAO 异常层次结构,因此您可以在不更改任何代码的情况下切换连接器,因为操作语义保持不变。
ReactiveRedisConnectionFactory创建活动ReactiveRedisConnection实例。此外,工厂充当PersistenceExceptionTranslator实例,这意味着一旦声明,它们就可以让您进行透明的异常转换——例如,通过使用@Repository注释和 AOP 进行异常转换。有关更多信息,请参阅Spring Framework 文档中的专用部分。
根据底层配置,工厂可以返回新连接或现有连接(如果使用池或共享本机连接)。
使用 a 的最简单方法
ReactiveRedisConnectionFactory是通过 IoC 容器配置适当的连接器并将其注入 using 类。
11.2.3.配置生菜连接器
Spring Data Redis 通过
org.springframework.data.redis.connection.lettuce包支持Lettuce。
您可以
ReactiveRedisConnectionFactory按如下方式设置生菜:
@Bean
public ReactiveRedisConnectionFactory connectionFactory() {
return new LettuceConnectionFactory("localhost", 6379);
}
以下示例显示了一个更复杂的配置,包括 SSL 和超时,它使用
LettuceClientConfigurationBuilder:
@Bean
public