Redis使用定期刪除和惰性刪除兩種方法來處理數據過期后的內存釋放。
定期刪除:Redis默認每秒會隨機抽取一些設置了過期時間的key進行檢查,如果發現過期則刪除。可以通過配置maxmemory-policy
來設置定期刪除的策略,例如noeviction
表示不刪除任何數據,allkeys-lru
表示按照LRU算法刪除數據等。
惰性刪除:當客戶端嘗試讀取一個key時,Redis會檢查該key是否過期,如果過期則刪除。這種方法可能會導致內存占用過高,因為過期的數據不會立即釋放。
通過這兩種方法,Redis可以高效地處理數據過期后的內存釋放。