Spring Data Redis 教程

Spring Data Redis 连接到 Redis

使用 Redis 和 Spring 时的首要任务之一是通过 IoC 容器连接到 Redis。因此,我们需要一个 Java 连接器。无论您选择哪种库(Lettuce 或者 Jedis),您只需要使用一组 Spring Data Redis API,这些 API 在所有连接器中的行为均一致。

org.springframework.data.redis.connection 包及其 RedisConnection 和 RedisConnectionFactory 接口,用于处理和检索到 Redis 的活动连接。

RedisConnection 和 RedisConnectionFactory

RedisConnection 为 Redis 通信提供了核心构建块,因为它处理与 Redis 后端的通信。它还自动将底层连接库异常转换为 Spring 一致的 DAO 异常层次结构,以便您可以在不更改任何代码的情况下切换连接器,因为操作语义保持不变。

注意:对于需要原生库 API 的极端情况,RedisConnection 提供了一个专用方法 (getNativeConnection),该方法返回用于通信的原始底层对象。

活动的 RedisConnection 对象是通过 RedisConnectionFactory 创建的。此外,工厂充当PersistenceExceptionTranslator对象,这意味着一旦声明,它们就允许您进行透明的异常转换。例如,您可以通过使用@Repository注释和AOP进行异常转换。

注意:当使用连接池或共享本机连接时,根据底层配置,工厂可以返回新连接或现有连接。

使用 RedisConnectionFactory 最简单的方法是通过 IoC 容器配置适当的连接器,并将其注入到业务类中。

不幸的是,目前,并非所有连接器都支持所有 Redis 功能。在底层库不支持的 Connection API 上调用方法时,会引发 UnsupportedOperationException。以下概述了各个 Redis 连接器支持的功能:

支持的功能LettuceJedis
独立连接XX
主/副本连接X
Redis 哨兵Master Lookup, Sentinel Authentication, Replica ReadsMaster Lookup
Redis 集群Cluster Connections, Cluster Node Connections, Replica ReadsCluster Connections, Cluster Node Connections
传输通道TCP, OS-native TCP (epoll, kqueue), Unix Domain SocketsTCP
连接池X (使用 commons-pool2)X (使用 commons-pool2)
其他连接功能非阻塞命令的单例连接共享JedisShardInfo 支持
SSL 支持XX
发布/XX
管道XX
事务XX
数据类型支持Key, String, List, Set, Sorted Set, Hash, Server, Stream, Scripting, Geo, HyperLogLogKey, String, List, Set, Sorted Set, Hash, Server, Scripting, Geo, HyperLogLog
响应式(非阻塞)APIX
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号