Spring Boot 3.x 中 Redis 连接池配置必须使用 spring.data.redis.lettuce.pool.* 路径且显式启用 enabled: true,同时需引入 commons-pool2 依赖,否则静默降级为单连接。
spring.data. redis 配置层级必须严格匹配 Spring Boot 3.x 的自动配置路径 Spring Boot 3.x 彻底移除了spring.redis.*spring.data.redis.*application.ymlspring:
redis:
host: localhost
lettuce:
pool:
max-active: 32max-activespring:
data:
redis:
host: localhost
port: 6379
lettuce:
pool:
enabled: true
max-active: 32
max-idle: 16
min-idle: 4
max-wait: 3000msspring.data.redis.lettuce.pool.enabled: truespring.redis.*hostportpasswordpoolspring.redis.*spring.data.redis.*RedisConnectionFactory@ServiceSystem.out.println(redisConnectionFactory.getClass().getName());
if (redisConnectionFactory instanceof LettuceConnectionFactory) {
LettuceConnectionFactory factory = (LettuceConnectionFactory) redisConnectionFactory;
System.out.println("Pool enabled: " + factory.isUsePooling());
System.out.println("Pool size: " + factory.getPoolConfig().getMaxTotal());
}org.springframework.data.redis.connection.lettuce.LettuceConnectionFactoryisUsePooling()falseenabled: trueorg.springframework.boot.autoconfigure.data.redis.LettuceConnectionConfigurationgetMaxTotal()8commons-pool2org.apache.commons:commons-pool2
org.apache.commons
commons-pool2
LettuceConnectionFactoryWARN o.s.b.a.d.r.RedisConnectionConfiguration - Unable to configure RedisConnectionFactorycommons-pool2org.apache.commons:poolcommons-pool2@Bean public RedisConnectionFactory redisConnectionFactory()@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration("localhost", 6379);
GenericObjectPoolConfig> poolConfig = new GenericObjectPoolConfig<>();
poolConfig.setMaxTotal(32);
poolConfig.setMaxIdle(16);
poolConfig.setMinIdle(4);
poolConfig.setMaxWaitMillis(3000);
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.commandTimeout(Duration.ofSeconds(5))
.useSsl() // 如需
.pool(poolConfig)
.build();
return new LettuceConnectionFactory(config, clientConfig);.pool(poolConfig)LettuceClientConfiguration.builder().build()GenericObjectPoolConfigLettucePoolingClientConfiguration@Value("${spring.data.redis.lettuce.pool.max-active}")min-idlemax-wait