關於RedisPool配置參數你都瞭解嗎?

1.配置參數解析

序號參數名含義默認值使用建議
1maxTotal資源池中最大連接數8設置建議見下節
2maxIdle資源池允許最大空閒的連接數8設置建議見下節
3minIdle
資源池確保最少空閒的連接數0設置建議見下節
4blockWhenExhausted當資源池用盡後,調用者是否要等待。只有當為true時,下面的maxWaitMillis才會生效true建議使用默認值
5maxWaitMillis當資源池連接用盡後,調用者的最大等待時間(單位為毫秒)-1:表示永不超時不建議使用默認值
6testOnBorrow向資源池借用連接時是否做連接有效性檢測(ping),無效連接會被移除
false業務量很大時候建議設置為false(多一次ping的開銷)。
7testOnReturn向資源池歸還連接時是否做連接有效性檢測(ping),無效連接會被移除false業務量很大時候建議設置為false(多一次ping的開銷)。
8jmxEnabled是否開啟jmx監控,可用於監控true建議開啟,但應用本身也要開啟

2.空閒資源監測

空閒Jedis對象檢測,下面四個參數組合來完成,testWhileIdle是該功能的開關。

序號參數名含義默認值使用建議
1testWhileIdle是否開啟空閒資源監測falsetrue
2timeBetweenEvictionRunsMillis空閒資源的檢測週期(單位為毫秒)-1:不檢測建議設置,週期自行選擇,也可以默認也可以使用下面JedisPoolConfig中的配置
3 minEvictableIdleTimeMillis資源池中資源最小空閒時間(單位為毫秒),達到此值後空閒資源將被移除1000*60 *30 = 30分鐘可根據自身業務決定,大部分默認值即可,也可以考慮使用下面JeidsPoolConfig中的配置
4numTestsPerEvictionRun做空閒資源檢測時,每次的採樣數3可根據自身應用連接數進行微調,如果設置為-1,就是對所有連接做空閒監測

Redis移除策略

Redis使用惰性刪除和定期刪除的策略

  • 惰性刪除是在訪問數據時,首先判斷是否過期,如果過期,則刪除緩存返回為空;

  • 定期刪除是一定時間內對數據庫進行掃描,清除掉過期數據,防止由於數據未被訪問而內存沒有釋放。定期刪除會設定最大的掃描時間以及每一個數據庫抽樣的個數;並且下次掃描會從根據上次掃描到的數據庫繼續掃描下一個數據庫。

關於移除策略常見名詞解釋

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

  • LFU(least frequently used (LFU) page-replacement algorithm)是看頻率,淘汰一定時期內被訪問次數最少的


分享到:


相關文章: