redis 过期键删除策略及源码分析

过期键删除策略

* 定时策略:为每个键值设置一个定时器,时间事件到,删除键值,要维护一个时间事件,redis的时间事件是链表,不合适;

* 惰性策略:只有get键时才对键进行过期检查,耗内存,expireIfNeeded();

*定期删除:每隔一段时间从一定数量的数据库中取出一定数量的随机键进行检查,并删除其中的过期键,databasecron()--->activeExpireCycle();

* rdb文件持久化和aof重写,master只保存没过期键,save/bgsave/bgrewriteaof命令不会包含过期键;slave,不管是否过期都保存;

* 复制:1、主服务器在删除一个过期键后,会显性向所有从服务器发送一个del命令,告知从服务器删除这个过期键;2、从服务器对过期键的读命令,都不会删除,正常处理;3、slave只有接到master的del命令才删除过期键。

 

源码分析

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值