Redis连接池配置指南
一 核心参数与建议
二 不同客户端的配置示例
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
GenericObjectPoolConfig<Jedis> config = new GenericObjectPoolConfig<>();
config.setMaxTotal(100);
config.setMaxIdle(50);
config.setMinIdle(10);
config.setMaxWaitMillis(2000);
config.setTestWhileIdle(true);
config.setTimeBetweenEvictionRunsMillis(30000);
config.setMinEvictableIdleTimeMillis(1800000);
try (JedisPool pool = new JedisPool(config, "127.0.0.1", 6379, 2000, "password")) {
try (Jedis jedis = pool.getResource()) {
jedis.set("k", "v");
System.out.println(jedis.get("k"));
}
}
import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisURI;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;
import io.lettuce.core.support.ConnectionPoolSupport;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
GenericObjectPoolConfig<StatefulRedisConnection<String,String>> poolConfig = new GenericObjectPoolConfig<>();
poolConfig.setMaxTotal(100);
poolConfig.setMaxIdle(50);
poolConfig.setMinIdle(10);
poolConfig.setMaxWaitMillis(2000);
poolConfig.setTestWhileIdle(true);
poolConfig.setTimeBetweenEvictionRunsMillis(30000);
poolConfig.setMinEvictableIdleTimeMillis(1800000);
RedisURI uri = RedisURI.create("redis://:password@127.0.0.1:6379");
StatefulRedisConnection<String,String> conn = ConnectionPoolSupport
.createGenericObjectPool(() -> RedisClient.create(uri), poolConfig)
.borrowObject();
try {
RedisCommands<String,String> sync = conn.sync();
sync.set("k", "v");
System.out.println(sync.get("k"));
} finally {
conn.close();
}
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=yourpassword
spring.redis.timeout=2000
spring.redis.lettuce.pool.max-active=100
spring.redis.lettuce.pool.max-idle=50
spring.redis.lettis.pool.min-idle=10
spring.redis.lettuce.pool.max-wait=2000
spring:
redis:
host: 127.0.0.1
port: 6379
password: yourpassword
timeout: 2000
lettuce:
pool:
max-active: 100
max-idle: 50
min-idle: 10
max-wait: 2000
spring.redis.jedis.pool.* 前缀配置。三 容量估算与压测校准
四 常见坑与排查