1.由于我们的项目使用,引用了公司的通用中间件,使用的redisson.而我们的项目使用了redis
因此我们在配置时使用了配置:
spring:
redis:
sentinelAddresses:
- redis://sentinel_ip1:26379
- redis://sentinel_ip2:26379
- redis://sentinel_ip3:26379
masterName: mymaster
sentinel:
master: mymaster
nodes:
- sentinel_ip1:26379
- sentinel_ip2:26379
- sentinel_ip3:26379
database: 8
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制)
max-active: 200
# 连接池中的最大空闲连接
max-idle: 200
# 连接池中的最小空闲连接
min-idle: 200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: 60s
timeout: 3000ms
2.引入哨兵时,可能会出现另一个问题:
Can't execute SENTINEL commands on /XXXX:26379
org.redisson.client.RedisTimeoutException: Command execution timeout for command: (SENTINEL SENTINELS), params: [mymaster], Redis client: [addr=redis://XXXX:26379]
这个问题解决办法是升级redisson的版本即可。
建议涉及到3.17以上版本。我这边使用的是3.17.7版本。
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.17.7</version> </dependency>