MST

星途 面试题库

面试题:Redis过期键删除策略之定期删除,有哪些优势与不足?

在Redis过期键删除策略中,定期删除是其中一种重要策略。请阐述定期删除策略具体的执行逻辑,并分析它相较于其他策略,具备哪些优势,同时又存在哪些不足?
36.5万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

定期删除策略执行逻辑

  1. 时间间隔:Redis会定期(默认每100毫秒)检查一次过期键。这个时间间隔是可以通过配置文件调整的。
  2. 随机抽查:每次检查并不会遍历所有的键,而是从数据库中随机抽取一定数量的键(例如10个)进行检查。
  3. 过期删除:如果抽查到的键已经过期,就将其从数据库中删除。
  4. 循环执行:上述过程会周期性地不断执行,确保过期键能在一定时间内被发现并删除。

优势

  1. 内存友好:相较于惰性删除,定期删除能够主动删除过期键,及时释放内存,避免了大量过期键长时间占用内存的情况,减少了内存碎片的产生,提高了内存的利用率。
  2. 性能平衡:不像定时删除那样对CPU压力巨大(定时删除要对每一个键设置定时器,过期就删除),定期删除采用随机抽查的方式,在一定程度上减轻了CPU的负担,在内存和CPU之间找到了一个相对较好的平衡点。

不足

  1. 过期键清理不及时:由于是随机抽查,可能存在一些过期键长时间不被抽查到,从而不能及时被删除,仍然占用内存,这可能导致内存使用量高于预期。
  2. CPU时间分配不稳定:虽然总体上减轻了CPU压力,但如果在某一时刻抽查到大量过期键需要删除,仍然会在这一时刻占用较多的CPU时间,对系统的性能造成一定的波动影响。