(1)定時刪除:在設定過期時間的同時,設定乙個定時器,定時器的執行時間就是過期的時間點。
(2)惰性刪除:不管鍵是否過期,只有每次取值的時候,才檢查是否過期,過期就刪除。
(3)定期刪除:每隔一段時間抽取一批 key 執行刪除過期 key 操作。並且,redis 底層會通過限制刪除操作執行的時長和頻率來減少刪除操作對 cpu 時間的影響。
redis採用的是惰性刪除和定期刪除兩種策略。
僅僅通過給 key 設定過期時間還是有問題的。因為還是可能存在定期刪除和惰性刪除漏掉了很多過期 key 的情況。這樣就導致大量過期 key 堆積在記憶體裡,然後就 out of memory 了。
怎麼解決這個問題呢?答案就是:redis 記憶體淘汰機制。
當redis的記憶體使用達到設定的記憶體上限時就會觸發記憶體淘汰機制,按照特定的淘汰演算法進行資料清理,釋放記憶體。
Redis的過期策略和記憶體淘汰策略
redis的過期策略 我們都知道,redis是key value資料庫,我們可以設定redis中快取的key的過期時間。redis的過期策略就是指當redis中快取的key過期了,redis如何處理。過期策略通常有以下三種 定時過期 每個設定過期時間的key都需要建立乙個定時器,到過期時間就會立即清...
Redis的過期策略和記憶體淘汰策略
在redis中我們對於鍵可以通過expire key time設定生存時間,當time時間過後鍵就會過期,redis會採用過期策略對過期的鍵進行刪除。過期策略主要是在cpu和記憶體之間進行權衡。可以將cpu的處理效率作為側重點進行選擇策略,也可以將記憶體的容量作為側重點進行選擇策略實際上redis採...
Redis的過期策略和記憶體淘汰策略
我們都知道,redis是key value資料庫,我們可以設定redis中快取的key的過期時間。redis的過期策略就是指當redis中快取的key過期了,redis如何處理。過期策略通常有以下三種 redis中同時使用了惰性過期和定期過期兩種過期策略。redis的記憶體淘汰策略是指在redis的...