全部產品
Search
文件中心

ApsaraDB for Redis:ApsaraDB for Redis如何清除到期Key

更新時間:Jun 19, 2024

本文介紹ApsaraDB for Redis清除到期Key的預設策略以及快速清除到期Key的方法。

背景資訊

若業務中資料存在到期策略,但執行個體中的Key數量遠大於預估數量;或者執行個體在同一時間(時間段)到期大量Key,例如在1~2小時內到期數十萬、百萬Key,且該執行個體的Key數量與預估數量仍有較大差距,此時,您的執行個體中可能存在大量到期Key未被及時清理。

預設策略

ApsaraDB for Redis存在以下三種自動清除到期Key的預設策略:

  • 主動到期(定期清除):系統後台會周期性地檢測,若發現已到期的Key,會將其清除。

  • 被動到期(惰性清除):當使用者訪問某個Key時,若該Key已到期,系統會將其清除。

  • 強制逐出:當Redis記憶體達到Maxmemory參數定義的上限時,將會引發操作阻塞或重要Key被逐出,甚至引發記憶體溢出(Out Of Memory),此時Redis的預設策略為volatile-lru,更多資訊請參見參數支援maxmemory-policy參數)。

說明

以上策略均無需您進行手動操作。

快速清除到期Key

下文將介紹幾種不同的快速清除到期Key的方法。

  • 在控制台的執行個體詳情頁,使用清除數據功能,可快速清除該執行個體的所有到期key,更多資訊請參見清除資料

    警告

    此方法清除速度最快,但短期內會增加執行個體的效能消耗,可能對線上業務造成影響,請謹慎執行或在業務低峰期執行。

  • 調高hz參數(Redis後台執行清除到期Key的頻率),更多資訊請參見實現Redis定期任務執行頻率的自動調整

    重要

    該值越大,CPU資源消耗越多,請謹慎操作。

    建議以10為階梯,逐步增加該參數的值,並即時觀察執行個體CPU的使用率,避免一次性調整過大造成CPU負載過高。

  • 基於業務分析,為Key設定更合理的TTL到期策略,避免無用Key長期儲存在資料庫中。

相關文檔

適用於

  • ApsaraDB for Redis

  • 雲原生記憶體資料庫Tair