从源码角度看JedisPoolConfig参数配置 (2)

为了方便使用,Jedis提供了JedisPoolConfig,它继承了GenericObjectPoolConfig在空闲检测上的一些设置。

public class JedisPoolConfig extends GenericObjectPoolConfig {
 public JedisPoolConfig() {
   // defaults to make your life with connection pool easier :)
   setTestWhileIdle(true);
   setMinEvictableIdleTimeMillis(60000);
   setTimeBetweenEvictionRunsMillis(30000);
   setNumTestsPerEvictionRun(-1);
}
}

 

配置参数解析

JedisPoolConfig中可以能够配置的参数有很多,连接池实现依赖apache 的commons-pool2。上面源码也大致列举了一些配置参数,下面在详细说明一下。

把池理解为工厂,池中的实例理解为工人,如下图,这样池中的很多参数理解起来就比较容易了。

UTOOLS1571546063571.png

 

Jedis连接就是连接池中JedisPool管理的资源,JedisPool保证资源在一个可控范围内,并且保障线程安全。使用合理的GenericObjectPoolConfig配置能够提升Redis的服务性能,降低资源开销。下列两表将对一些重要参数进行说明,并提供设置建议。

参数 说明 默认值 建议
maxTotal   资源池中的最大连接数   8   参见关键参数设置建议  
maxIdle   资源池允许的最大空闲连接数   8   参见关键参数设置建议  
minIdle   资源池确保的最少空闲连接数   0   参见关键参数设置建议  
blockWhenExhausted   当资源池用尽后,调用者是否要等待。只有当值为true时,下面的maxWaitMillis才会生效。   true   建议使用默认值。  
maxWaitMillis   当资源池连接用尽后,调用者的最大等待时间(单位为毫秒)。   -1(表示永不超时)   不建议使用默认值。  
testOnBorrow   向资源池借用连接时是否做连接有效性检测(ping)。检测到的无效连接将会被移除。   false   业务量很大时候建议设置为false,减少一次ping的开销。  
testOnReturn   向资源池归还连接时是否做连接有效性检测(ping)。检测到无效连接将会被移除。   false   业务量很大时候建议设置为false,减少一次ping的开销。  
jmxEnabled   是否开启JMX监控   true   建议开启,请注意应用本身也需要开启。  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppxds.html