Redis內存回收策略

redis中,使用兩種內存回收策略


刪除過期的Key策略

1、惰性回收,當客戶端讀取某個Key時,如果當前的Key對應的記錄已經過期,則刪除當前的這條記錄,這個做法的好處:節省CPU成本,不需要維護TTL鏈表,但是缺點也很明顯,不能及時回收已經過期的記錄 

2、定時回收,每隔一段時間,自定讀取一定數量的Key,判斷是否已經過期,刪除過期的冷數據。

 


內存超出maxmemory之後,淘汰機制,當Redis使用的內存超出設定的最大內存閾值後,Redis會根據策略,淘汰一部分數據,淘汰策略有六種方式

  • noeviction:默認策略,當內存不足以容納新寫入數據時,新寫入操作會報錯。
  • allkeys-lru:當內存不足以容納新寫入數據時,在鍵空間中,移除最近最少使用的 Key。
  • allkeys-random:當內存不足以容納新寫入數據時,在鍵空間中,隨機移除某個 Key。
  • volatile-lru:當內存不足以容納新寫入數據時,在設置了過期時間的鍵空間中,移除最近最少使用的 Key。這種情況一般是把 Redis 既當緩存,又做持久化存儲的時候才用。
  • volatile-random:當內存不足以容納新寫入數據時,在設置了過期時間的鍵空間中,隨機移除某個 Key。
  • volatile-ttl:當內存不足以容納新寫入數據時,在設置了過期時間的鍵空間中,有更早過期時間的 Key 優先移除。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章