Redis学习_8_逐出策略

删除策略 与 逐出策略 的对比

删除策略是针对具有有效期的数据,如果所有数据都是永久的,但是内存又满了,新的数据不能存进来时,就需要用到逐出策略。

逐出策略是指,在redis用内存储存操作前,先检查内存是否足够,不够的话临时删除一些数据来清理空间。
注意:逐出算法不一定能成功,当所有数据都逐出失败时,会报OOM异常。

影响数据逐出的相关配置

  • 最大可使用内存:maxmemory
    占用物理内存的比例,默认为0,表示全部占用。生产环境根据需求确认,一般在50%左右。
  • 每次选取待删除数据的个数:maxmemory-samples
    选择待删除数据时,不是全库扫描,而是随机选择,这个参数用来控制选择的数量。
  • 删除策略:maxmemory-policy
    达到最大内存后,被挑选出来的数据被删除的策略。

具体的删除策略

  • 检测易失数据(即有时效性的数据:server.db[i].expires)
    1.volatile-lru(Least Recently Used):淘汰一段时间内,最长时间未被使用的数据。
    2.volatile-lfu(Least Frequently Used):淘汰一段时间内,使用次数最少的数据。
    3.volatile-ttl:删除即将过期的数据。
    4.volatile-random:随机选择数据淘汰。
  • 检测全库数据(所有数据集:server.db[i].dict)
    5.allkeys-lru(Least Recently Used):淘汰一段时间内,最长时间未被使用的数据。
    6.allkeys-lfu(Least Frequently Used):淘汰一段时间内,使用次数最少的数据。
    7.allkeys-random:删除即将过期的数据。
  • 放弃数据驱逐
    8.no-enviction:禁止数据驱逐(redis4.0默认策略),会引发OOM。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值