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