在开源Redis中支持两种过期key删除机制:
- 惰性删除:在对key读写命令执行之前进行检查,如果过期,则删除该键;未过期则不做操作,继续执行原有的命令。
- 定期删除:由Redis的定时任务实现,该任务每次运行时从键空间中随机取出一定数量的Key进行检查,并删除其中的过期键。
Redis提供了立即/定时释放所有已经过期Key占用内存的功能,可以选择立即执行任务或者通过配置定时清理任务的方式,来清理Redis实例的过期key。在任务执行期间,会对所有缓存实例的主节点进行扫描操作,扫描操作通过scan的方式遍历整个实例的键空间,针对已过期的实例,执行del操作,从而释放已过期的Key。
说明过期key扫描会消耗CPU,建议在业务低峰时段执行。
前提条件
已成功开通分布式缓存服务Redis版实例,且实例处于运行中状态。
操作步骤
- 登录 Redis管理控制台。
- 在管理控制台右上角选择实例所在的区域。
- 在实例列表页,单击目标实例名称进入实例详情页面。
- 左侧菜单点击CloudDBA->过期KEY扫描,进行过期key扫描,支持“立即扫描”和“定时扫描”。
- 点击“立即扫描”后,会生成扫描记录。
- 如果需要定期扫描,则需打开“自动扫描”按钮,并配置首次扫描时间、扫描间隔、迭代Key数量。
注意扫描间隔不宜设置过短,扫描频次太高会影响实例的性能。