Redis研究總結

Redis刪除策略

定期刪除+惰性刪除

定期:每100ms隨機抽取一些設置了過期時間的key,檢查是否過期,如果過期那就刪除

惰性刪除:當獲取某個key時,redis檢查一下這個key是否已過期,如果過期那就刪除

內存不夠時,走redis的內存淘汰機制:no eviction、allkeys-lru(對所有的key刪除最近最少使用的key)、alleys-random(對所有的key隨機刪除)、volatile-lru(對設置了過期時間的key刪除最近最少使用的key)、volatile-random(對設置了過期時間的key隨機刪除)、volatile-ttl(僅淘汰設置了過期時間的key,淘汰生存時間TTL最小的key)

 

一般的經驗規則:

  • 使用allkeys-lru策略:當預期請求符合一個冪次分佈(二八法則等),比如一部分的子集元素比其它其它元素被訪問的更多時,可以選擇這個策略。
  • 使用allkeys-random:循環連續的訪問所有的鍵時,或者預期請求分佈平均(所有元素被訪問的概率都差不多)
  • 使用volatile-ttl:要採取這個策略,緩存對象的TTL值最好有差異

volatile-lru 和 volatile-random策略,當你想要使用單一的Redis實例來同時實現緩存淘汰和持久化一些經常使用的鍵集合時很有用。未設置過期時間的鍵進行持久化保存,設置了過期時間的鍵參與緩存淘汰。不過一般運行兩個實例是解決這個問題的更好方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章