天天看點

Redis 中jedisPool 連接配接配置

配置參數解析

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. 惰性删除是在通路資料時,首先判斷是否過期,如果過期,則删除緩存傳回為空;
  2. 定期删除是一定時間内對資料庫進行掃描,清除掉過期資料,防止由于資料未被通路而記憶體沒有釋放。定期删除會設定最大的掃描時間以及每一個資料庫抽樣的個數;并且下次掃描會從根據上次掃描到的資料庫繼續掃描下一個資料庫。

關于移除政策常見名詞解釋 

1. LRU (Least Recently Used): 淘汰最長時間未被使用的 

2. LFU(least frequently used (LFU) page-replacement algorithm)是看頻率,淘汰一定時期内被通路次數最少的

繼續閱讀