redis的过期策略

前言:Redis的所有数据结构都可以设置过期时间,而redis内部有一系列策略来回收已经过期的数据结构。

过期的key集合

  1. redis实现了一套事件触发模型,主要处理两种事件:I/O事件定时事件
  2. redis会将设了过期时间的key都存入一个独立的字典中。一是启动定时事件去遍历字典,二是当发生I/O事件(如读、写命令)时,就使用惰性策略去删除过期的key
  3. 定时删除是集中处理,惰性删除是零散处理。

扫描策略

Redis默认会每秒进行十次过期扫描,每次不会遍历整个字典,而是采用一种贪心策略。

  1. 从过期字典中随机选择20个key
  2. 删除这20个key中已过期的key
  3. 如果过期的key比例超过1/4,重复步骤1

同时,每个扫描默认不超过25ms,保证每次扫描不会占用太久时间。

从库的过期策略

从库不会进行过期扫描,从库对过期的处理是被动的。主库在key到期时,会在AOF文件里增加一条del指令,同步到所有的从库,从库通过执行这条del指令来删除过期的key。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值