参数 | 含义 | 建议 |
setMaxTotal | 连接池中的最大连接数。 | 设置该参数,需要考虑业务并发量、访问延迟、最大连接数等因素。 |
setMaxIdle | 连接池最大空闲连接数。 | 建议与 setMaxTotal 相同。 |
setMinIdle | 资源池允许的最小空闲连接数。 | 建议与 setMaxTotal 相同。 |
timeout | 超时时间。 | 该参数需要根据业务模型及网络链路性能设置。 一般网络延迟较低,服务耗时非常敏感的业务,可以设置50-100ms。 如果业务容忍度高,或者业务访问 kv 数据较大,可以设置500ms、1000ms。 |
setTestOnBorrow |
设置在从连接池中获取连接时是否进行连接测试。 | 如果设置为 true ,则在获取连接时会调用 connection.isValid() 方法进行连接测试。以确保获取到的连接是可用的,但同时会消耗 QPS 性能。如果设置为 false ,则不会进行连接测试。可以提高连接获取的速度,但是可能会获取到不可用的连接。 |
setTestOnReturn | 设置将连接归还连接池时,是否进行校验。 | 如果设置为 true ,则在归还连接时会调用 connection.isValid()
方法进行连接测试,以确保归还的连接是可用的。如果设置为 false ,则不会进行连接测试。可以提高归还连接的速度,但是可能会归还不可用的连接。通常情况下建议设置为 true 。 |
JedisPoolConfig config = new JedisPoolConfig();// 最大空闲连接数,需自行评估,不超过Redis实例的最大连接数config.setMaxIdle(200);// 最大连接数,需自行评估,不超过Redis实例的最大连接数config.setMaxTotal(200);//资源池允许的最小空闲连接数config.setMinIdle(20);//当资源池连接用尽后,调用者的最大等待时间(单位为毫秒)config.setMaxWaitMillis(3000);//从连接池中获取对象时,会先进行ping检查,检查不通过,会从连接池中移走并销毁。config.setTestOnBorrow(false);//归还连接时,会进行检查,检查不通过,则销毁。config.setTestOnReturn(false);// 设置连接池方式为队列config.setLifo(false);//设置最小连接检查config.setTimeBetweenEvictionRunsMillis(3000);// 分别将host和password的值替换为实例的连接地址、密码String host = "192.xx.xx.195";String password = "123ad6aq";//读写超时(单位为毫秒)int timeout = 2000;int port = 6379;JedisPool pool = new JedisPool(config,host,port,timeout,password);Jedis jedis = null;boolean broken = false;try{jedis = pool.getResource();/// ... do stuff here ... for examplejedis.set("redis", "tencent");String foobar = jedis.get("redis");jedis.zadd("tec", 0, "a");jedis.zadd("tec", 0, "b");Set < String > sose = jedis.zrange("tec", 0, -1);}catch(Exception e){broken = true;}finally{if(broken){pool.returnBrokenResource(jedis);}else if(jedis != null){pool.returnResource(jedis);}}
本页内容是否解决了您的问题?