文档库 最新最全的文档下载
当前位置:文档库 › 连接池常用配置说明

连接池常用配置说明


连接池的常用参数详解

参数 默认值 描述
一、连接池队列参数

1、initialSize 0 初始化连接。连接池启动时创建的初始化连接数量。

2、maxActive 8 最大活动连接。连接池在同一时间能够分配的最大活动连接的数量。

3、maxIdle 8 最大空闲连接。连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制

4、minIdle 0 最小空闲连接。连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建

5、maxWait 无限 最大等待时间。当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待

二、验证连接是否可用

1、validationQuery SQL语句,用于验证从连接池取出的连接,查询必须返回至少一行记录

2、testOnBorrow true 是否在池中取出连接前检验。若检验失败,则从池中去除连接并尝试取出另一个。

3、testOnReturn false 是否在归还连接前检验。

4、testWhileIdle false 连接是否在空闲连接回收器回收时(如果有)进行检验。如果检测失败,则连接将被从池中去除.

三、空闲回收器
1、timeBetweenEvictionRunsMillis -1 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位.如果设置为非正数,则不运行空闲连接回收器线程

2、numTestsPerEvictionRun 3 在每次空闲连接回收器线程(如果有)运行时检查的连接数量

3、minEvictableIdleTimeMillis 1000 * 60 * 30 连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒




redis 连接池配置

1、maxActive: 最大连接数,-1表示不限。

2、maxIdle:控制一个pool最多有多少个状态为idle的jedis实例;

3、maxWait:获取一个实例,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;

4、whenExhaustedAction:连接分配完后采用的策略;默认有三种WHEN_EXHAUSTED_FAIL(表示无jedis实例时,直接抛出NoSuchElementException)、WHEN_EXHAUSTED_BLOCK(则表示阻塞住,或者达到maxWait时抛出JedisConnectionException)、WHEN_EXHAUSTED_GROW(则表示新建一个jedis实例,也就说设置的maxActive无用);

5、testOnBorrow:获取一个实例时,是否验证可用。

6、testOnReturn:在return给pool时,是否提前进行validate操作;

testWhileIdle:如果为true,表示有一个idle object evitor线程对idle object进行扫描,如果validate失败,此对象会被从pool中移除;这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义;
timeBetweenEvictionRunsMillis:表示idle object evitor两次扫描之间要sleep的毫秒数;
numTestsPerEvictionRun:表示idle obj

ect evitor每次扫描的最多的对象数;
minEvictableIdleTimeMillis:表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义;
softMinEvictableIdleTimeMillis:在minEvictableIdleTimeMillis基础上,加入了至少minIdle个对象已经在pool里面了。如果为-1,evicted不会根据idle time驱逐任何对象。如果minEvictableIdleTimeMillis>0,则此项设置无意义,且只有在timeBetweenEvictionRunsMillis大于0时才有意义;
lifo:borrowObject返回对象时,是采用DEFAULT_LIFO(last in first out,即类似cache的最频繁使用队列),如果为False,则表示FIFO队列;

其中JedisPoolConfig对一些参数的默认设置如下:
testWhileIdle=true
minEvictableIdleTimeMills=60000
timeBetweenEvictionRunsMillis=30000
numTestsPerEvictionRun=-1

相关文档