org.springframework.data.redis.RedisSystemException: Redis exception; nested exception is io.lettuce.core.RedisException: io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection re
set by peer
at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:74)
添加配置
spring:
redis:
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 2 # 保持最小空闲连接数
max-wait: 1000ms
time-between-eviction-runs: 30000 # 空闲连接检测周期(毫秒)
redisconfig配置增加
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration serverConfig = new RedisStandaloneConfiguration(host, port);
serverConfig.setPassword(password);
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.commandTimeout(Duration.ofSeconds(5)) // 增加命令超时时间
.shutdownTimeout(Duration.ofSeconds(2)) // 增加关闭超时时间
.clientOptions(ClientOptions.builder()
.autoReconnect(true)
.disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS) // 断开连接时拒绝命令
.pingBeforeActivateConnection(true) // 连接前PING测试
.build())
.build();
LettuceConnectionFactory factory = new LettuceConnectionFactory(serverConfig, clientConfig);
factory.setValidateConnection(true); // 在工厂级别设置连接验证
return factory;
}