本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

預設的資料逐出策略是什嗎?

更新時間:2025-03-12 19:27

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

  • 本頁導讀 (1, M)
  • 逐出策略
  • 修改逐出策略
  • 常見問題
  • 相關文檔
文檔反饋
phone 聯絡我們

立即和Alibaba Cloud在線服務人員進行交談,獲取您想了解的產品信息以及最新折扣。

alicare alicarealicarealicare