• redis《三》连接池配置参数


    参数	值
    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=new JedisPoolConfig();
     4 
     5 //        //设置是否后进先出 默认为true   ,false为FIFO先进先出
     6 //        jedisPoolConfig.setLifo(true);
     7 //        //在连接对象创建时测试连接对象的有效性,默认false
     8 //        jedisPoolConfig.setTestOnCreate(false);
     9 //        //公平机制 默认为false
    10 //        jedisPoolConfig.setFairness(false);
    11 //        //连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
    12 //        jedisPoolConfig.setBlockWhenExhausted(true) ;
    13 //        // 默认为空
    14 //        jedisPoolConfig.setJmxNameBase(null);
    15 //        //默认为pool
    16 //        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);//6s
    27         //驱逐线程关闭的超时时间,默认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 this
    65 //        jedisPoolConfig.setEvictionPolicy(EvictionPolicy<T> evictionPolicy) ;
    66 
    67         JedisConnectionFactory factory = new JedisConnectionFactory(redisClusterConfiguration(), jedisPoolConfig);
    68         return factory;
    69     }
    View Code
    一点点学习,一丝丝进步。不懈怠,才不会被时代淘汰
  • 相关阅读:
    chrome手动同步书签
    MySQL(5.6/5.7版本)卸载方法
    Windows 搭建IIS+PHP+MySQL环境
    按照innode删除结点
    wsl区分大小win10不区分大小写解决方案
    Docker容器里的centos疑难杂症
    [UGUI]源码调试和修改
    [UnityAPI]EditorWindow类 & Editor类
    [UnityAPI]Selection类
    [Lua]require
  • 原文地址:https://www.cnblogs.com/wangbiaohistory/p/13671980.html
Copyright © 2020-2023  润新知