redis-cluster是一个高可用,可分片的分布式redis集群解决方案,建议使用springboot2.3及以上版本的脚手架,如果是<2.3版本,你需要手动添加LettuceConnectionFactory来实现因为服务器宕机引起的节点感应功能;如果没有添加动态感应,那你的redis-cluster就不是一个高可用的,人家服务器对主,从进行了动态切换,由消费方没有进行链接地址的变更,这是我们不可接受的。
springboot2.3的application.yml相关配置
spring:
redis:
database: 0 # 数据库,每个库由16384(0~16383)槽位组成,实现了库的分片
password: xxx@xxx# 密码
timeout: 50000 # 连接超时时间
cluster:
nodes:
- 192.168.4.26:6379
- 192.168.4.26:6380
- 192.168.4.26:6479
- 192.168.4.26:6480
- 192.168.4.26:6579
- 192.168.4.26:6580
max-redirects: 3 # 获取失败 最大重定向次数
lettuce:
pool:
max-idle: 10
max-active: 10
min-idle: 0
cluster:
refresh: # 动态感应
adaptive: true
period: 10000
节点变更
- 主节机挂机
- 主节点在挂机后,进行了重新选举
- 新的主节点被选举成功,挂机的节点,重新启动后,变成了从节点
- springboot在达到失败重试次数和时间间隔后,将从新节点中返回数据