全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):預設的資料逐出策略是什嗎?

更新時間:Mar 13, 2025

Tair (Redis OSS-compatible)執行個體的記憶體佔滿時,會觸發資料逐出策略(又稱為淘汰策略),以確保記憶體不會超出限制。預設的策略為volatile-lru,即從已設定到期時間的Key中,清除最少使用的Key。本文介紹Tair (Redis OSS-compatible)的逐出策略。

逐出策略

  • volatile-lru(記憶體型及Redis開源版預設):從已設定到期時間(Expire)的Key中,刪除最近最少使用的Key(LRU演算法),且不會考慮Key是否已經到期。

  • noeviction(持久記憶體型預設):不刪除任何Key,當記憶體達到上限時,將無法寫入新資料,資料庫會返回錯誤資訊。

  • volatile-lfu:從已設定到期時間(Expire)的Key中,刪除最不常用的Key(LFU演算法)。

  • volatile-random:從已設定到期時間(Expire)的Key中,隨機刪除一些Key。

  • volatile-ttl:從已設定到期時間(Expire)的Key中,根據存活時間(TTL)從小到大排序進行刪除。

  • allkeys-lru:從所有Key中,刪除最近最少使用的Key(LRU演算法)。

  • allkeys-lfu:從所有Key中,刪除最不常用的Key(LFU演算法)。

  • allkeys-random:從所有Key中,隨機刪除一些Key。

修改逐出策略

請登入管理主控台,在目標執行個體的參數設定中修改maxmemory-policy參數的值,具體操作請參見設定參數

常見問題

  • Q:為什麼寫入帶有到期時間(Expire)的Key,會在極短時間內被刪除?

    A:您可以檢查下執行個體的記憶體是否已用完。當執行個體記憶體被佔滿時,確實會觸發資料逐出。而由於執行個體的預設逐出策略是volatile-lru,當寫入帶有到期時間(Expire)的Key時,這些Key會優先被刪除。此時您可以考慮擴容執行個體的記憶體規格,具體操作請參見變更執行個體配置

相關文檔

如果Key數量減少,有可能是因為資料到期被清除。Tair (Redis OSS-compatible)資料到期清除策略以及手動清除的方法,請參見如何清除到期Key