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