maxwaitmill redis_redis《三》连接池配置参数

本文详细介绍了Redis连接池配置参数,包括setTestWhileIdle、setMinEvictableIdleTimeMillis、setTimeBetweenEvictionRunsMillis等关键设置,以及JedisPoolConfig在Java代码中的应用示例,帮助理解如何优化Redis连接池性能。
摘要由CSDN通过智能技术生成

参数值

setTestWhileIdle()在空闲时检查有效性 true

setMinEvictableIdleTimeMillis()连接最小空闲时间 1800000L

setTimeBetweenEvictionRunsMillis()逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1 30000

setNumTestsPerEvictionRun()每次释放连接的最大数目 3

setBlockWhenExhausted(boolean blockWhenExhausted)当池中的资源耗尽时是否进行阻塞,设置false直接报错,true表示会一直等待,直到有可用资源

setEvictionPolicyClassName(String evictionPolicyClassName)设置逐出策略,默认策略为 “org.apache.commons.pool2.impl.DefaultEvictionPolicy”

setFairness(boolean fairness)当从池中获取资源或者将资源还回池中时 是否使用java.util.concurrent.locks.ReentrantLock.ReentrantLock 的公平锁机制,默认为false

setJmxEnabled设置是否启用JMX,默认true

setJmxNameBase(String jmxNameBase)设置JMX基础名

setJmxNamePrefix(String jmxNamePrefix)设置JMX前缀名,默认值pool

setLifo(boolean lifo)设置连接对象是否后进先出,默认true

setMaxIdle(int maxIdle)设置最大空闲连接数,默认为8

setMaxTotal(int maxTotal)设置最大连接数,默认18个

setMaxWaitMillis(long maxWaitMillis)获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1

setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)设置连接最小的逐出间隔时间,默认1800000毫秒

setMinIdle(int minIdle)设置无连接时池中最小的连接个数,默认连接0

setNumTestsPerEvictionRun(int numTestsPerEvictionRun)每次逐出检查时,逐出连接的个数

setSoftMinEvictableIdleTimeMillis(softMinEvictableIdleTimeMillis)对象空闲多久后逐出, 当空闲时间>该值 且 空闲连接>最大空闲数 时直接逐出,不再根据MinEvictableIdleTimeMillis判断

setTestOnBorrow(boolean testOnBorrow)从池中获取连接时是否测试连接的有效性,默认false

setTestOnCreate(boolean testOnCreate)在连接对象创建时测试连接对象的有效性,默认false

setTestOnReturn(boolean testOnReturn)在连接对象返回时,是否测试对象的有效性,默认false

setTestWhileIdle(boolean testWhileIdle)在连接池空闲时是否测试连接对象的有效性,默认false

setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)设置连接对象有效性扫描间隔,设置为-1,则不运行逐出线程

java代码:

1 JedisConnectionFactory jedisConnectionFactory() {2

3 JedisPoolConfig jedisPoolConfig=newJedisPoolConfig();4

5 // //设置是否后进先出 默认为true ,false为FIFO先进先出6 //jedisPoolConfig.setLifo(true);7 // //在连接对象创建时测试连接对象的有效性,默认false8 //jedisPoolConfig.setTestOnCreate(false);9 // //公平机制 默认为false10 //jedisPoolConfig.setFairness(false);11 // //连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true12 //jedisPoolConfig.setBlockWhenExhausted(true) ;13 // //默认为空14 //jedisPoolConfig.setJmxNameBase(null);15 // //默认为pool16 //jedisPoolConfig.setJmxNamePrefix("pool");17 // //设置的逐出策略类名, 默认DefaultEvictionPolicy(当连接超过最大空闲时间,或连接数超过最大空闲连接数)18 //jedisPoolConfig.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy") ;19 //最大连接数, 默认8个

20 jedisPoolConfig.setMaxTotal(8);21 //最大空闲连接数, 默认8个

22 jedisPoolConfig.setMaxIdle(8);23 //每次测试运行驱逐数目 默认为3个线程

24 jedisPoolConfig.setNumTestsPerEvictionRun(2);25 //获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1

26 jedisPoolConfig.setMaxWaitMillis(6000);//6s27 //驱逐线程关闭的超时时间,默认10秒

28 jedisPoolConfig.setEvictorShutdownTimeoutMillis(15000) ;29 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》30 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》31 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》32 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》33 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》34 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》35 //是从连接池中取出是检查连接是否失活。默认false(节省性能)36 //若testOnBorrow属性设置为true,从连接池中获取对象时,会进行检查,检查不通过,会从连接池中移走并销毁。37 //检查是通过PooledObjectFactory接口的validateObject方法完成。Jedis客户端,提供JedisFactory对象,用于校验。若ping不通,则校验失败。38 //JedisFactory对象,是在连接池创建时,构造。 默认为false(节省性能)39 //jedisPoolConfig.setTestOnBorrow(false);//一搬都为默认,40 //若testOnReturn属性设置为true,归还连接时,会进行检查,检查不通过,销毁。 默认为false(节省性能)41 //jedisPoolConfig.setTestOnReturn(false);//一搬都为默认,42

43

44 //失效连接主要通过testWhileIdle保证,如果获取到了不可用的数据库连接,一般由应用处理异常。45 //在检查闲置连接时同时检查连接可用性 默认false 这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义;

46 jedisPoolConfig.setTestWhileIdle(true);47 //在minEvictableIdleTimeMillis基础上,加入了至少minIdle个对象已经在pool里面了。48 //如果为-1,evicted不会根据idle time驱逐任何对象。如果minEvictableIdleTimeMillis>0,则此项设置无意义,49 //且只有在timeBetweenEvictionRunsMillis大于0时才有意义;50 //对象空闲多久后逐出, 当空闲时间>该值 且 空闲连接>最大空闲数 时直接逐出,不再根据MinEvictableIdleTimeMillis判断

51 jedisPoolConfig.setSoftMinEvictableIdleTimeMillis(30000);//15s一次52

53 //逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1 30000

54 jedisPoolConfig.setTimeBetweenEvictionRunsMillis(60000);55 // //连接最小空闲时间 1000L * 60L * 30L; 默认半小时(单位毫秒)56 //jedisPoolConfig.setMinEvictableIdleTimeMillis(1800000);//setSoftMinEvictableIdleTimeMillis与setSoftMinEvictableIdleTimeMillis和setTestWhileIdle只能存在一个57 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》58 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》59 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》60 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》61 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》62 //》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》63

64 //Only 2.6.0 applications set this65 //jedisPoolConfig.setEvictionPolicy(EvictionPolicy evictionPolicy) ;

66

67 JedisConnectionFactory factory = newJedisConnectionFactory(redisClusterConfiguration(), jedisPoolConfig);68 returnfactory;69 }

View Code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值