Jedis高版本的JedisPoolConfig没有maxActive和maxWait

简介: 在高版本的Jedis中,连接池配置属性发生了一些变化。通过使用 `JedisPoolConfig`中的新属性,可以更好地管理和优化Redis连接池。本指南提供了详细的配置方法和示例代码,帮助开发者快速上手并正确配置Jedis连接池。希望本文对您有所帮助,能够在项目中高效地使用Jedis与Redis。

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);
    ​
    

思维导图

+------------------------------------------------------+
|         Jedis高版本JedisPoolConfig配置详解            |
+------------------------------------------------------+
           |
           +-----------------------------+
           | 一、属性变化                 |
           | 1. maxTotal(替代maxActive)|
           | 2. maxWaitMillis(替代maxWait)|
           +-----------------------------+
           |
           +-----------------------------+
           | 二、示例代码                 |
           | 1. 创建JedisPoolConfig       |
           | 2. 设置连接池属性            |
           | 3. 创建JedisPool             |
           | 4. 获取连接并执行操作        |
           | 5. 关闭JedisPool             |
           +-----------------------------+
           |
           +-----------------------------+
           | 三、配置详解                 |
           | 1. MaxTotal                  |
           | 2. MaxIdle                   |
           | 3. MinIdle                   |
           | 4. MaxWaitMillis             |
           | 5. TestOnBorrow              |
           | 6. TestOnReturn              |
           | 7. TestWhileIdle             |
           +-----------------------------+
​

四、总结

在高版本的Jedis中,连接池配置属性发生了一些变化。通过使用 JedisPoolConfig中的新属性,可以更好地管理和优化Redis连接池。本指南提供了详细的配置方法和示例代码,帮助开发者快速上手并正确配置Jedis连接池。希望本文对您有所帮助,能够在项目中高效地使用Jedis与Redis。

目录
相关文章
|
关系型数据库 PostgreSQL
PostgreSQL 比较运算符
PostgreSQL 比较运算符
2206 0
|
NoSQL Java Redis
redis: jedis连接超时(需要手动注入连接超时检测的配置)
redis: jedis连接超时(需要手动注入连接超时检测的配置)
1166 0
|
XML Dubbo fastjson
FastJson - 设置默认参数,全局配置方式及爬坑
FastJson - 设置默认参数,全局配置方式及爬坑
2153 0
|
NoSQL Java Redis
|
监控 NoSQL 安全
如何在 Redis 中正确使用多线程?
【10月更文挑战第16天】正确使用 Redis 多线程需要综合考虑多个因素,并且需要在实践中不断摸索和总结经验。通过合理的配置和运用,多线程可以为 Redis 带来性能上的提升,同时也要注意避免可能出现的问题,以保障系统的稳定和可靠运行。
356 2
|
9月前
|
存储 API 数据安全/隐私保护
Apipost vs Apifox:支持离线/强制登录,谁在捍卫开发者的数据安全?
在工具选型中,API管理工具是助手还是枷锁?文章通过分析Apifox强制登录、依赖云端,断网即失效;Apipost支持游客模式和本地存储,在极端环境下仍可用坐对比,揭露是否支持离线功能的本质是对数据主权的不同态度。从登录策略、离线能力到协作模式,可以看到,Apipost更尊重开发者自由与数据安全,适合对敏感性要求高的项目。最终建议选择工具时思考:若服务中断或断网,是否仍保有主动权?真正优秀的工具应如氧气般关键时不可或缺。
1589 9
Apipost vs Apifox:支持离线/强制登录,谁在捍卫开发者的数据安全?
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?
1935 58
|
11月前
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
313 8
|
NoSQL Redis 监控
redis-shake数据同步&迁移&备份导入导出工具使用介绍
redis-shake是阿里云Redis&MongoDB团队开源的用于redis数据同步的工具。
72625 4
redis-shake数据同步&迁移&备份导入导出工具使用介绍