JedisPoolConfig config =
new
JedisPoolConfig();
//連接耗盡時是否阻塞, false報異常,ture阻塞直到超時, 默認true
config.setBlockWhenExhausted(
true
);
//設置的逐出策略類名, 默認DefaultEvictionPolicy(當連接超過最大空閑時間,或連接數超過最大空閑連接數)
config.setEvictionPolicyClassName(
"org.apache.commons.pool2.impl.DefaultEvictionPolicy"
);
//是否啟用pool的jmx管理功能, 默認true
config.setJmxEnabled(
true
);
//MBean ObjectName = new ObjectName("org.apache.commons.pool2:type=GenericObjectPool,name=" + "pool" + i); 默 認為"pool", JMX不熟,具體不知道是干啥的...默認就好.
config.setJmxNamePrefix(
"pool"
);
//是否啟用后進先出, 默認true
config.setLifo(
true
);
//最大空閑連接數, 默認8個
config.setMaxIdle(
8
);
//最大連接數, 默認8個
config.setMaxTotal(
8
);
//獲取連接時的最大等待毫秒數(如果設置為阻塞時BlockWhenExhausted),如果超時就拋異常, 小於零:阻塞不確定的時間, 默認-1
config.setMaxWaitMillis(-
1
);
//逐出連接的最小空閑時間 默認1800000毫秒(30分鍾)
config.setMinEvictableIdleTimeMillis(
1800000
);
//最小空閑連接數, 默認0
config.setMinIdle(
0
);
//每次逐出檢查時 逐出的最大數目 如果為負數就是 : 1/abs(n), 默認3
config.setNumTestsPerEvictionRun(
3
);
//對象空閑多久后逐出, 當空閑時間>該值 且 空閑連接>最大空閑數 時直接逐出,不再根據MinEvictableIdleTimeMillis判斷 (默認逐出策略)
config.setSoftMinEvictableIdleTimeMillis(
1800000
);
//在獲取連接的時候檢查有效性, 默認false
config.setTestOnBorrow(
false
);
//在空閑時檢查有效性, 默認false
config.setTestWhileIdle(
false
);
//逐出掃描的時間間隔(毫秒) 如果為負數,則不運行逐出線程, 默認-1
config.setTimeBetweenEvictionRunsMillis(-
1
);
JedisPool pool =
new
JedisPool(config,
"localhost",
);
int timeout=3000;
new JedisSentinelPool(master, sentinels, poolConfig,
timeout);//timeout 讀取超時