配置參數解析
maxTotal 資源池中最大連接配接數 預設值8 建議值
maxIdle 資源池允許最大空閑的連接配接數 預設值8 建議值
minIdle 資源池確定最少空閑的連接配接數 預設值0 建議值
blockWhenExhausted 當資源池用盡後,調用者是否要等待。隻有當為true時,下面的maxWaitMillis才會生效 預設值true 建議使用預設值
maxWaitMillis 當資源池連接配接用盡後,調用者的最大等待時間(機關為毫秒) -1:表示永不逾時 不建議使用預設值
testOnBorrow 向資源池借用連接配接時是否做連接配接有效性檢測(ping),無效連接配接會被移除 預設值 false 業務量很大時候建議設定為false(多一次ping的開銷)。
testOnReturn 向資源池歸還連接配接時是否做連接配接有效性檢測(ping),無效連接配接會被移除 預設值 false 業務量很大時候建議設定為false(多一次ping的開銷)。
jmxEnabled 是否開啟jmx監控,可用于監控 預設值 true 建議開啟,但應用本身也要開啟
空閑資源解析
空閑Jedis對象檢測,下面四個參數組合來完成,testWhileIdle是該功能的開關。
testWhileIdle 是否開啟空閑資源監測, 預設值 false, 建議值 true
timeBetweenEvictionRunsMillis 空閑資源的檢測周期(機關為毫秒), 預設值 -1, 建議設定,周期自行選擇,也可以預設也可以使用下面JedisPoolConfig中的配置
minEvictableIdleTimeMillis 資源池中資源最小空閑時間(機關為毫秒),達到此值後空閑資源将被移除, 預設值1000*60 *30 = 30分鐘, 可根據自身業務決定,大部分預設值即可,也可以考慮使用下面JeidsPoolConfig中的配置
numTestsPerEvictionRun 做空閑資源檢測時,每次的采樣數, 預設值3, 可根據自身應用連接配接數進行微調,如果設定為-1,就是對所有連接配接做空閑監測
Redis移除政策
Redis使用惰性删除和定期删除的政策
- 惰性删除是在通路資料時,首先判斷是否過期,如果過期,則删除緩存傳回為空;
- 定期删除是一定時間内對資料庫進行掃描,清除掉過期資料,防止由于資料未被通路而記憶體沒有釋放。定期删除會設定最大的掃描時間以及每一個資料庫抽樣的個數;并且下次掃描會從根據上次掃描到的資料庫繼續掃描下一個資料庫。
關于移除政策常見名詞解釋
1. LRU (Least Recently Used): 淘汰最長時間未被使用的
2. LFU(least frequently used (LFU) page-replacement algorithm)是看頻率,淘汰一定時期内被通路次數最少的