Redis緩存過期處理與內存淘汰機制

一、緩存過期處理

  1. 主動刪除(定期刪除)
    可以在redis.conf中有個hz 10的配置,默認設置爲10,表示每秒檢測10次。

    注意該值設置太高,會對CPU性能有影響。

  2. 被動刪除(惰性刪除)
    客戶端請求到已過期的key,那麼redis就會去檢測該key是否過期,如果過期就刪除該key。這種策略對cpu比較友好,不會有太多的損耗,但是內存佔用會比較高。

二、內存淘汰機制

在redis.conf的MEMEORY MANAGEMENT配置中,maxmemory當內存已使用率到達,則開始清理。有8種淘汰算法。

  • noeviction:舊緩存永不過期,新緩存設置不了,返回錯誤。
  • allkeys-lru:清除最少用的舊緩存,然後保存新的緩存(推薦使用)。
  • allkeys-random:在所有的緩存中隨機刪除(不推薦)。
  • volatile-lru:在那些設置了expire過期時間的緩存中,清除最少用的舊緩存,然後保存新的緩存。
  • volatile-random:在那些設置了expire過期時間的緩存中,隨機刪除緩存。
  • volatile-ttl:在那些設置了expire過期時間的緩存中,刪除即將過期的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章