本文介紹雲資料庫Tair(相容 Redis)清除到期Key的預設策略以及快速清除到期Key的方法。
背景資訊
若業務中資料存在到期策略,但執行個體中的Key數量遠大於預估數量;或者執行個體在同一時間(時間段)到期大量Key,例如在1~2小時內到期數十萬、百萬Key,且該執行個體的Key數量與預估數量仍有較大差距,此時,您的執行個體中可能存在大量到期Key未被及時清理。
預設策略
雲資料庫Tair(相容 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長期儲存在資料庫中。
相關文檔
適用於
雲資料庫Tair(相容 Redis)