Redis 的过期键删除策略是什么?

Redis的过期键删除策略主要有三种:

  1. 定时删除:在设置某个key的过期时间时,Redis会为该key创建一个定时器,当过期时间到达时,定时器会立即执行删除操作。这种策略的优点是可以保证过期key能够尽快被删除,从而释放其占用的内存。然而,缺点也很明显,即对CPU不友好。当过期键数量较多时,删除过期key会占用大量的CPU资源,可能会影响到Redis服务器的响应时间和吞吐量。
  2. 惰性删除:惰性删除的策略是,在key被访问时(如执行GET命令),Redis会检查该key是否已过期。如果已过期,则删除该key;否则,正常返回key的值。这种策略的优点是对CPU友好,因为删除操作只在必须的情况下进行,不会在其他过期的key上浪费CPU时间。但是,缺点是对内存不友好。如果一个key已经过期,但在它被访问之前,它仍然会占用内存空间。如果存在大量的过期key但很少被访问到,那么这可能会导致大量的内存空间被浪费。
  3. 定期删除:定期删除是定时删除和惰性删除的一种折中方案。Redis会每隔一段时间(例如每秒或每100ms)执行一次删除操作,检查并删除一部分过期的key。这种策略的优点是既能保证一定的内存使用效率,又能避免对CPU造成过大的压力。但是,具体的删除频率和删除数量需要根据实际情况进行调整,以达到最佳的平衡效果。

在Redis中,可以通过配置参数来调整过期键的删除策略。例如,可以通过配置hz参数来调整Redis执行定时任务的频率,从而影响定期删除的效果。同时,也可以通过配置maxmemory-policy参数来选择当Redis内存不足时应该采取的策略,例如删除最近最少使用的key、删除带有过期时间的key等。

  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值