Redis缓存过期淘汰机制

Redis缓存过期淘汰机制

在我们对于存储的数据设置过期时间后,Redis会帮我们淘汰掉这些数据。

由于数据量可能比较大,我们如果需要扫描整个Redis存储的数据,会比较耗费时间。

所以,Redis采用的策略是:

  1. 定期删除

    在设置了过期时间的数据集中,隔一段时间挑几个检测,看是不是过期了,过期就删了。

  2. 惰性删除

    在get获取值的时候,会检测你要get的数据是否过期,过期就删了,给你返回null

如果有很多数据没有被定期删除扫描到。而且我们也没有去get触发惰性删除,那么

Redis根据这种情况,提供了缓存淘汰机制。

其实类似操作系统一样,这种问题操作系统很早就考虑过了,内存是硬盘的缓存,CPU的寄存器也是缓存,虚拟内存中的页缓存等等

Redis的缓存淘汰有这几种:

  1. 基于已经设置过期时间的数据集
    1. LRU,最近最少使用的删掉
    2. TTL,快过期的删掉
    3. Random,随机删
  2. 普通的数据集
    1. LRU,最近最少使用的key,把其K,V删掉。
    2. Random,随机删
    3. No-eviction,容量满了就不能提交了
  3. Redis4.0新增的
    1. 已经设置过期时间的数据集中,把 访问次数最少的删掉
    2. 普通的数据集中,把 访问次数最少的删掉
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值