文档

云数据库Redis版如何清除过期Key

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍云数据库Redis版清除过期Key的默认策略以及快速清除过期Key的方法。

背景信息

若业务中数据存在过期策略,但实例中的Key数量远大于预估数量;或者实例在同一时间(时间段)过期大量Key,例如在1~2小时内过期数十万、百万Key,且该实例的Key数量与预估数量仍有较大差距,此时,您的实例中可能存在大量过期Key未被及时清理。

默认策略

云数据库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长期存储在数据库中。

相关文档

适用于

  • 云数据库Redis版

  • 云原生内存数据库Tair

  • 本页导读 (1)