MST

星途 面试题库

面试题:Redis过期键删除策略之定期删除原理及相关参数

请阐述Redis过期键删除策略中的定期删除策略的工作原理,以及Redis中与定期删除相关的主要配置参数有哪些,并说明这些参数对定期删除机制的影响。
33.4万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

定期删除策略工作原理

  1. 抽样检查:Redis 并非对所有过期键进行扫描,而是每隔一段时间,从数据库的 key 空间中随机抽取一定数量的 key 进行检查。
  2. 删除过期键:对抽样到的 key,检查它们是否过期,如果过期则删除。
  3. 循环执行:这种抽样检查操作会周期性地循环执行,以保证数据库中过期键能在一定时间内被清理。

与定期删除相关的主要配置参数

  1. hz
    • 含义hz参数定义了 Redis 服务器在一秒内执行多少次“serverCron”函数,该函数负责执行包括定期删除过期键等一系列后台任务。
    • 影响hz值越大,意味着 Redis 每秒执行“serverCron”函数的次数越多,也就有更多机会去检查和删除过期键,能更及时地清理过期键,但会增加 CPU 负载。默认值为 10,即每秒执行 10 次“serverCron”函数;若设置为 100,每秒执行 100 次,能更频繁检查过期键,但对 CPU 消耗更大。
  2. maxmemory-samples
    • 含义:在进行定期删除过期键的抽样检查时,每次抽样的 key 数量由maxmemory-samples决定。
    • 影响:该值越大,每次抽样检查覆盖的范围越广,能发现更多过期键并删除,提高内存回收效率,但会增加检查的时间开销。若值设置过小,可能导致很多过期键长时间未被检查到,从而浪费内存。默认值为 5,即每次抽样检查 5 个 key。