Redis(十九)缓存过期淘汰策略

面试题

  1. 生产上你们的redis内存设置多少?
  2. 如何配置、修改redis的内存大小
  3. 如果内存满了你怎么办
  4. redis清理内存的方式?定期删除和惰性删除了解过吗
  5. redis缓存淘汰策略有哪些?分别是什么?你用那个?
  6. redis的LRU了解过吗?请手写LRU
  7. lru和lfu算法的区别是什么

内存满怎么办

  1. 查看Redis最大占用内存
    在这里插入图片描述
    打开redis配置文件,设置maxmemory参数,maxmemory是bytes字节类型,注意转换。
    在64位系统下maxmemory设置为0表示不限制使用

  2. 一般生产设置多少

最大物理内存的3/4

  1. 修改内存设置

除以上修改配置文件外,可用命令设置
在这里插入图片描述

  1. 查看目前内存情况
info memory
config get maxmemory

补充
设置最大为1byte
结论:无法set,提示OOM,没有设置过期时间的使用内部淘汰策略

写入的数据如何删除的(删除策略)

立即删除

总结:对CPU不友好,用处理器性能换取存储空间(拿时间换空间)
优点:立即删除能保证内存中数据的最大新鲜度
缺点:但是立即删除对cpu是最不友好的。因为删除操作会占用cpu的时间,如果刚好碰上了cpu很忙的时候,比如正在做交集或排序等计算的时候,就会给cpu造成额外的压力

惰性删除

数据到达过期时间,不做处理。等下次访问该数据时
如果一个键已经过期,而这个键又仍然保留在redis中,那么只要这个过期键不被删除,它所占用的内存就不会释放。

总结:对memory不友好,用存储空间换取处理器性能(拿空间换时间)
开启惰性淘汰

lazyfree-lazy-eviction=yes

上面两种方案都走极端

  1. 定期删除时,从来没有被抽查到
  2. 惰性删除时,也从来没有被点中使用过

上述两个步骤:大量过期的key堆积在内存中,导致redis内存空间紧张或者很快耗尽

缓存淘汰策略

配置文件

在这里插入图片描述

LRU和LFU区别

在这里插入图片描述
LRU:最近最少使用页面置换算法,淘汰最长时间未被使用的页面,看页面最后一次被使用到发生调度的时间长短,首先淘汰最长时间未被使用的页面。
LFU:最近最不常用页面置换算法,淘汰一定时期内被访问次数最少的页,看一定时间段内页面被使用的频率,淘汰一定时期内被访问次数最少的页

有哪些

  1. noeviction:不会驱逐任何key,表示即使内存达到上限也不进行置换,所有能引起内存增加的命令都会返回error
  2. allkeys-lru:对所有key使用LRU算法进行删除,优先删除掉最近最不经常使用的key,用以保存新数据
  3. volatile-lru:对所有设置了过期时间的key使用LRU算法进行删除
  4. allkeys-random:对所有key随机删除
  5. volatile-random:对所有设置了过期时间的key随机删除
  6. volatile-ttl: 删除马上要过期的key
  7. allkeys-lfu:对所有key使用LFU算法进行删除
  8. volatile-lfu:对所有设置了过期时间的key使用LFU算法进行删除

小结
两个维度:

  1. 过期键中筛选
  2. 所有键中筛选

四个方面

  1. LRU
  2. LFU
  3. random
  4. ttl

在这里插入图片描述

如何配置、修改

  1. 直接用config命令
  2. 直接redis.conf配置文件

redis缓存淘汰策略配置性能建议

  1. 避免存储bigkey
  2. 开启惰性淘汰,lazyfree-lazy-eviction=yes
  • 37
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lucky_Turtle

感谢您的打赏,作者会多多努力的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值