Jedis高版本JedisPoolConfig配置详解

在高版本的Jedis中,JedisPoolConfig已经不再包含 maxActivemaxWait属性。相应地,这些属性已经被替换为了其他名称和新的配置方式。本文将详细解释这些变化,并提供如何在高版本Jedis中进行正确配置的指导。

一、JedisPoolConfig属性变化

在高版本的Jedis中,maxActivemaxWait属性被分别替换为 maxTotalmaxWaitMillis。以下是这些属性的详细介绍:

  1. maxTotal:该属性用于替代 maxActive,用于设置连接池中最大连接数。
  2. maxWaitMillis:该属性用于替代 maxWait,用于设置连接池获取连接时的最大等待时间(毫秒)。

此外,Jedis的连接池配置中还有其他重要属性:

  • minIdle:连接池中最小空闲连接数。
  • maxIdle:连接池中最大空闲连接数。
  • testOnBorrow:从连接池中获取连接时是否进行有效性检查。
  • testOnReturn:将连接返回给连接池时是否进行有效性检查。
  • testWhileIdle:连接空闲时是否进行有效性检查。

二、示例代码

以下是一个配置高版本Jedis的示例代码:

import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisConfigExample {

    public static void main(String[] args) {
        // 创建JedisPoolConfig对象
        JedisPoolConfig poolConfig = new JedisPoolConfig();

        // 配置连接池属性
        poolConfig.setMaxTotal(50); // 替代maxActive
        poolConfig.setMaxIdle(10);
        poolConfig.setMinIdle(5);
        poolConfig.setMaxWaitMillis(2000); // 替代maxWait
        poolConfig.setTestOnBorrow(true);
        poolConfig.setTestOnReturn(false);
        poolConfig.setTestWhileIdle(true);

        // 创建JedisPool
        JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379);

        // 使用JedisPool获取连接并执行操作
        try (var jedis = jedisPool.getResource()) {
            jedis.set("key", "value");
            System.out.println("Stored string in redis:: "+ jedis.get("key"));
        }

        // 关闭JedisPool
        jedisPool.close();
    }
}
​
 
 

三、配置详解

  1. MaxTotal

    • 配置连接池中最大连接数,防止过多连接占用资源。
    poolConfig.setMaxTotal(50);
  2. MaxIdle

    • 设置连接池中最大空闲连接数,确保即使在高负载时也能及时提供可用连接。
    poolConfig.setMaxIdle(10);
  3. MinIdle

    • 设置连接池中最小空闲连接数,保持足够的空闲连接以应对突发请求。
    poolConfig.setMinIdle(5);
  4. MaxWaitMillis

    • 设置获取连接时的最大等待时间(毫秒),防止客户端长时间等待而阻塞。
    poolConfig.setMaxWaitMillis(2000);
  5. TestOnBorrow

    • 从连接池中获取连接时进行有效性检查,确保连接可用。
    poolConfig.setTestOnBorrow(true);
  6. TestOnReturn

    • 将连接返回连接池时进行有效性检查,确保返回的连接是健康的。
    poolConfig.setTestOnReturn(false);
  7. TestWhileIdle

    • 连接空闲时进行有效性检查,避免因空闲连接失效而影响使用。
    poolConfig.setTestWhileIdle(true);
posted @ 2025-08-19 14:33  csoe9999  阅读(52)  评论(0)    收藏  举报