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 }
redis《三》连接池配置参数的更多相关文章
- spring数据连接池配置参数
1.使用jdbc连接,每次使用完毕需要关闭连接. 2.使用数据库连接池就会方便很多,但是如果参数配置不对,也会引起mysql连接数不够,导致mysql挂掉,基本原理是:不使用的连接数及时回收回来,而不 ...
- dbcp连接池配置参数
1.<!-- 数据源1 --> 2. <bean id="dataSource" 3. class="org.apache.commons.dbcp.B ...
- Confluence 6 LDAP 连接池配置参数
初始连接池大小(Initial Pool Size) 当初始化 LDAP 连接池的时候初始化创建的 LDAP 连接数量. 1 期望的连接池大小(Preferred Pool Size) 优化连接池的大 ...
- java客户端Jedis操作Redis Sentinel 连接池
pom配置: <dependency> <groupId>org.springframework.data</groupId> <artifactId> ...
- C3p0连接池配置
在Java开发中,使用JDBC操作数据库的四个步骤如下: ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connection co ...
- Java Mysql连接池配置和案例分析--超时异常和处理
前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...
- redis.windows.conf各项配置参数介绍 (九)
# 默认情况下,redis不是在后台模式运行的,如果需要在后台进程运行,把该项的值更改为yes,默认为no daemonize:是否以后台daemon方式运行 # 如redis服务以后台进程运行的时候 ...
- hibernate+mysql的连接池配置
1:连接池的必知概念 首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了. 以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放.如果频繁的 ...
- redis运用连接池报错解决
redis使用连接池报错解决redis使用十几小时就一直报异常 redis.clients.jedis.exceptions.JedisConnectionException: Could not g ...
随机推荐
- 【洛谷P2028 龙兄摘苹果】动态规划
分析 第二类striling数 考虑最后一个数到底是放在之前的任意一个集合内,还是自成一个集合 \[F_{i\ j}=F_{i-1\ j-1}+j\times F_{i-1,j} \] AC代码 #i ...
- java实现自动静默打印功能
最近接到一个需求,要求实现自动打印功能,一般网页打印pdf需要借助浏览器的pdf组件,而且还要弹出打印窗口,再点击打印才能实现. 那么如何实现自动打印了,从点击自己网页上3次缩减到点击一次了? 一 ...
- NPM 所有的指令已经问题 使用淘宝镜像 出现code EAI_AGAIN
windows怎么卸载cnpm? npm uninstall cnpm -g windows怎么检测cnpm是否安装成功 cnpm -v 我们直接将node的仓库地址换成淘宝仓库地址即可 单次使用 n ...
- Vue单点登录控件代码分享
这里提供一个Vue单点登录的demo给大家参考,希望对想了解的朋友有一些帮助. 具体的原理大家可以查看我的上篇文章 vue实现单点登录的N种方式 废话不多少直接上代码 这里分两套系统,一是登录系统的主 ...
- 官宣|VS Code 1.59 发布!Terminal 可以跨窗口移动了!
欢迎使用 2021 年 7 月版的 Visual Studio Code.我们希望您会喜欢此版本中的许多更新与改进,以下是其中的一些高亮: 扩展视图的改进 - 丰富的扩展详细信息悬停,新的运行状态标签 ...
- 自学linux——10.Linux的网络知识
linux的网络知识 一.网络相关概述 1.网络的分类 局域网(LAN):在几百米到十几公里内办公楼群或校园内的计算机相互连接所构成的计算机网络 城域网(MAN):覆盖相距不远的几栋办公楼,也可以覆盖 ...
- 并发编程——认识java里的线程
本文系作者 chaoCode原创,转载请私信并在文章开头附带作者和原文地址链接. 违者,作者保留追究权利. 前言 并发编程在我们日常开发中是时时刻刻都有在用的,只不过大部分的代码底层已经帮我们去做了一 ...
- Java8 Lambda表达式(二)
目录 一.Java8 内置的四大核心函数式接口 1. 消费型接口 Consumer 2. 供给型接口 Supplier 3. 函数型接口 Function 4.断言型接口 Predicate 二.方法 ...
- time_formatter writeup
攻防世界time_formatter writeup UAF漏洞和命令注入. 前置知识 1.strdup函数 char * __strdup(const char *s) { size_t len = ...
- 流量加密-Kali使用Openssl反弹shell
Kali使用Openssl反弹shell 前言 之前在护网的时候,如果流量中有明文的敏感信息,譬如攻击特征,是很容易被IDS检测出来的,此时红队的攻击行为就会暴露.这是非常危险的一件事.今天我们通过本 ...