1. jedis pool使用自己打包的jar讀取property文件連接redis服務(wù)器。
但是配置文件里的參數(shù)得好好搞清楚
2. 經(jīng)過多次研究,確認(rèn)如下配置:
2032 $ cat JedisPoolConfig.properties
#最大分配的對(duì)象數(shù)
redis.pool.maxActive=1248
#最大/最小能夠保持idel狀態(tài)的對(duì)象數(shù)(超過最大則回收或者少于最小則創(chuàng)建)
redis.pool.maxIdle=80
redis.pool.minIdle=7
#當(dāng)池內(nèi)沒有返回對(duì)象時(shí)残拐,最大等待時(shí)間(毫秒)
redis.pool.maxWait=40000
#當(dāng)調(diào)用borrow Object方法時(shí),是否進(jìn)行有效性檢查
redis.pool.testOnBorrow=true
#當(dāng)調(diào)用return Object方法時(shí)碟嘴,是否進(jìn)行有效性檢查
redis.pool.testOnReturn=true
#IP
redis.ip=172.17.0.3
#Port
redis.port=6379
#超時(shí)時(shí)間(毫秒)
redis.timeout=40000
#Pwd
redis.pwd=XXXXX
3. 使用連接池后溪食,網(wǎng)絡(luò)socket數(shù)量通過"netstat -ano|grep 6379|wc -l"看到明顯已降低。
4. 當(dāng)前使用連接池方式為在代碼中獲取連接,最后釋放即可:
import com.tm.mc.redis.MCRedisInstance;
Jedis jedis = MCRedisInstance.getInstance().getJedis();
jedis.close();
5. 當(dāng)前使用連接池方式的不足:
當(dāng)項(xiàng)目中需要連接多個(gè)redis服務(wù)器的時(shí)候娜扇,無法完成該需求错沃。
因?yàn)槟J(rèn)jar包只會(huì)讀取指定的一個(gè)配置文件栅组,只能配置一個(gè)redis服務(wù)器。
后續(xù)若要實(shí)現(xiàn)枢析,可以在原來jar包基礎(chǔ)上判斷配置文件的名稱規(guī)范和數(shù)量玉掸,然后可以自動(dòng)初始化連接到多個(gè)redis服務(wù)器的連接池。
6.后續(xù)將會(huì)把該思路延展到mongdb的連接池醒叁,進(jìn)一步優(yōu)化程序效率司浪。