Redis的过期策略和内存淘汰机制

一、Redis的过期策略和内存淘汰机制

1、内存过期策略

    1. 对redis中的key设置了过期时间,执行的过期策略是:定期删除+惰性删除
          
定期删除:每100ms随机抽取一批数据进行检查,如果符合过期时间则删除key。(如果检查所有key那直接卡死了)
          惰性删除:获取key的时候检查key是否过期。

    2. 为什么不用定时删除:对每个key做定时的话,太耗费cpu了。

    3. 定期删除+惰性删除 会产生的问题:如果某些key一直没被随机检查到,也没被访问过,此时既不会触发定期删除也不会触发惰性删除,key就死在里面了,导致内存越来越高。此时使用内存淘汰机制:

2、内存淘汰机制

    1. 缓存淘汰算法FIFO、LFU(最近最少使用)、LRU(最久未使用)
 
  2. redis.conf中有一行配置:  maxmemory-policy allkeys-lru
                 allkeys-lru:内存满了时,用LRU算法清理最久没使用的key;
                 allkeys-random:随机删,不如LRU;
                 volatile-lru:设置了过期时间的key使用LRU;
                 noeviction:(驱逐) 内存不够写入时直接报错

二、LRU算法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值