Redis中key过期的删除机制是什么

Redis中key过期策略

key 设置了过期时间时,Redis 会把该 key 带上过期时间存储到一个过期字典

过期字典保存了数据库中所有 key 的过期时间

惰性删除策略

不主动删除每次访问时,才会检查 key 是否过期

策略只会使用很少的系统资源,但是造成了一定的内存空间浪费。

定期删除策略

每隔一段时间「随机」从数据库中取出一定数量的 key 进行检查,并删除其中的过期key

减少了过期键对空间的无效占用,耗费了CPU性能。

持久化对过期数据的处理

RDB把当前数据生成快照保存在硬盘上

生成阶段

从内存状态持久化成 RDB(文件)的时候,会对 key 进行过期检查,过期的键「不会」被保存到新的 RDB 文件中。

恢复阶段

主服务器:过期键不会被载入到数据库中

从服务器:过期键会被载入到数据库中


AOF记录每次对数据的操作到硬盘上

写入阶段

过期键还没被删除,那么 AOF 文件会保留此过期键

过期键被删除后,Redis 会向 AOF 文件追加一条 DEL 命令来显式地删除该键值

重写阶段

从库不会进行过期扫描,从库对过期的处理是被动的。

主库在 key 到期时, AOF 文件里增加一条 del 指令,同步到所有的从库,从库通过执行这条 del 指令来删除过期的 key。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值