这里介绍SpringBoot下如何连接Redis Cluster集群进行访问操作
POM
这里Redis Cluster集群为3主3从的架构模式,其中Redis版本为7.0。SpringBoot及其相关依赖的版本如下所示。Spring Boot 2.X版本开始,其使用的Redis客户端由Jedis变为Lettuce。Lettuce提供了对Redis Cluster集群中MOVED、ASK重定向的支持
1 | <parent> |
配置文件
SpringBoot下application.properties配置文件中关于Redis的配置如下所示。由于Lettuce客户端默认不开启集群拓扑刷新功能。故连接Redis集群时,我们需要开启Lettuce客户端对集群拓扑的刷新功能。以便在集群节点进行主从切换后,Lettuce客户端可以感知到集群节点的变化。具体地,Lettuce提供了三种刷新集群拓扑的方式:
- 通过主动调用 RedisClusterClient.reloadPartitions 方式进行手动刷新
- 后台定时刷新
- 后台自适应刷新(基于链接断开、MOVED/ASK重定向)
在SpringBoot2.3.x后,可直接通过spring.redis.lettuce.cluster.refresh.adaptive、spring.redis.lettuce.cluster.refresh.period配置项开启自适应刷新、定时刷新功能
1 | # Redis 集群信息配置 |
配置类
SpringBoot中Redis配置类如下所示
1 | 4j |
使用
这里我们直接通过Controller来验证
1 |
|
测试结果如下,符合预期