Redis的key淘汰方式和内存不足淘汰方式

Redis的key过期淘汰方式

  • Redis key过期策略

    • 定期删除+惰性删除
  • Redis如何淘汰过期的key

    • 定期删除
      • 隔一段时间,就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除
      • 定期删除可能会导致很多过期key到了时间并没有被删除掉,所以需要惰性删除
    • 惰性删除
      • 概念:当一些客户端尝试访问它时,key会被发现并主动的过期
      • 放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话就删除该键
  • Redis服务器实际使用的是惰性删除和定期删除两种策略:通过配合使用这两种删除策略,服务器可以很好的在合理使用CPU时间和避免浪费内存空间之间取得平衡

Redis的内存不足淘汰方式

  • 背景
    • Redis在占用的内存超过指定的maxmemory之后,通过maxmemory-policy确定Redis是否释放内存以及如何释放内存
    • 提供多种策略
  • 策略
    • volatile-lru:(Least Recently Used)最近最少使用算法,从设置了过期时间的键中选择空转时间最长的键值对清除掉
    • volatile-lfu:(Least Frequently Used)最近最不经常使用算法,从设置了过期时间的键中选择某段时间之内使用频次最小的键值对清除掉
    • volatile-ttl:从设置了过期时间的键中选择过期时间最早的键值对清除(删除即将过期的)
    • volatile-random:从设置了过期时间的键中,随机选择键进行清除
    • allkeys-lru:(Least Recently Used)最近最少使用算法,从所有的键中选择空转时间最长的键值对清除掉
    • allkeys-lfu:(Least Frequently Used)最近最不经常使用算法,从所有的键中选择某段时间之内使用频次最小的键值对清除掉
    • allkeys-random:从所有的键中,随机选择键进行清除
    • noeviction :不做任何的清理工作,在Redis的内存超过限制之后,所有的写入操作都会返回错误,但是读操作都能正常的进行
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

水宝的滚动歌词

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值