天天看點

Redis 過期政策及記憶體淘汰機制

- 過期政策

Redis 的過期政策就是指當Redis中緩存的Key過期了,Redis如何處理的。

1.定時過期:每個設定過期時間的 Key 建立定時器,到過期時間立即清除。記憶體友好,CPU不友好

2.惰性過期:通路Key時判斷是否過期,過期則清除。CPU友好記憶體不友好

3.定期過期:隔一定時間,expires字典中掃描一定數量的Key,清除其中已過期的Key。記憶體和CPU資源達到最優的平衡效果

- 記憶體淘汰機制

記憶體淘汰機制就可以保證在redis記憶體在占用過高的時候,去進行記憶體淘汰,也就是删除部分key,

保證redis的記憶體占用率不會過高。Redis目前共提供了8種記憶體淘汰機制。

no-eviction:新寫入操作會報錯。

allkeys-lru:移除最近最少使用的key,這個是最常用的。

allkeys-random:随機移除某些 key。

allkeys-lfu:移除最不經常(最少)使用的key。

volatile-lru:在設定了過期時間的key中,移除最近最少使用的key。

volatile-random:在設定了過期時間的key中,随機移除某些key 。

volatile-lfu:在設定了過期時間的key中,移除最不經常(最少)使用的key。

volatile-ttl:在設定了過期時間的鍵中,有更早過期時間的 key 優先移除。

繼續閱讀