跳到主要内容

Redis过期键的删除策略?

参考答案:

Redis的过期键删除策略主要有三种,分别是:

  1. 定时删除:在设置某个key的过期时间的同时,创建一个定时器,让定时器在该过期时间到来时,立即执行对其进行删除的操作。这种策略的优点是可以保证过期key尽快被删除,并释放其占用的内存。然而,缺点是对CPU不友好,当过期键比较多时,会占用大量的CPU资源,从而影响服务器的响应时间和吞吐量。
  2. 惰性删除:只有当访问一个过期的key时,才会执行删除操作。这种策略的优点是对CPU友好,只有在需要获取key值时才会检查是否过期,从而避免了对CPU资源的浪费。但是,这种策略对内存不友好,如果一个key已经过期,但在被操作之前不会被删除,那么它仍然会占用内存空间。
  3. 主动删除:Redis会定期主动淘汰一批已过期的key。当已用内存超过maxmemory限定时,也会触发主动清理策略。这种策略结合了定时删除和惰性删除的优点,既能避免大量过期键占用过多的内存,又能减少对CPU资源的占用。

在实际应用中,Redis会根据不同的场景和需求,灵活使用这三种策略,以达到最优的性能和内存使用效果。