Redis 过期键的删除策略

Redis使用结合了惰性删除和定期删除的策略处理过期键,通过expires字典保存过期时间,并在生产RDB和AOF文件时处理过期键。惰性删除在读取时检查,定期删除则在特定时间执行删除操作,平衡CPU和内存的使用。
摘要由CSDN通过智能技术生成

Redis过期键的删除策略

常见的对于过期键的删除策略有以下几种:

定时删除

在设置每个键的时候,设置一个timer,到期就删除该键

  • 优点:对内存有效,及时删除过期键
  • 缺点:对cpu不友好,当过期键多的时候,删除过期键这一行为会占用很多cpu

惰性删除

只在读取键时,对过期时间进行判断,如果过期就删除,不过期就返回该键。

  • 优点: 对CPU友好
  • 缺点:对内存不友好,对于过期的键,不能及时删除,很可能造成过期键堆积。

定期删除

前两种方式的折中,每隔一段时间执行一次过期键的删除策略,通过限制删除过期键的时长和频率来减少删除操作对CPU时间的影响。

Redis中的策略

Redis中对于过期键的删除策略为惰性删除和定期删除策略的结合。

Redis如何保存过期键

在数据库的 RedisDb 结构中保存了一个名为 expires的字典,字典的键为指向某个键对象,字典的值为一个毫秒级的 unix 时间戳。

RDB、AOF对过期键的处理

  1. 生产RDB文件时,跳过过期键,载入RDB文件时,主服务器跳过过期键,从服务器载入(难以理解)。
  2. AOF重写时,跳过过期键,AOF写入时(服务器以AOF持久化模式运行),对过期键不做处理,

本文章总结于黄健宏老师的《Redis设计与实现》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值