Redis對於過期鍵有三種清除策略

愛青菜發表於2020-11-29

Redis對於過期鍵有三種清除策略:

持久化策略(記憶體到磁碟上):RDB(全部選中的資料進行全量備份)、AOF日誌記錄修改指令(增量備份針對上一次選中的資料)兩種方案

記憶體淘汰策略:noeviction–預設策略,不刪除資料 allkeys-lru–所有key中,刪除最近最少使用的資料 volatile-lru–設定過期時間的所有key中,選取最近最少使用的資料刪除 volatile-random–在所有key中,隨機刪除設定過期時間key的資料 volatile-ttl–設定過期時間key中,刪除存活時間最短的資料

過期(定期)策略:定期刪除(過期key放入獨立字典中,定期刪除字典資料)、定期刪除策略(定期刪除)、惰性刪除(過期了,刪除,不返回任何資料)

==============================================

被動刪除:當讀/寫一個已經過期的key時,會觸發惰性刪除策略,直接刪除掉這個過期key
主動刪除:由於惰性刪除策略無法保證冷資料被及時刪掉,所以Redis會定期主動淘汰一批已過期的key
當前已用記憶體超過maxmemory限定時,觸發主動清理策略
被動刪除

只有key被操作時(如GET),REDIS才會被動檢查該key是否過期,如果過期則刪除之並且返回NIL。
1、這種刪除策略對CPU是友好的&

相關文章