redis的删除策略和淘汰策略

一、删除策略:是当数据到期,redis对过期数据的处理策略。
1.定时删除:当某一个key的过期时间到达后,redis就把对应的value和key删除。
优点是省内存,能快速的把过期数据删除腾出空间。
缺点是CPU资源占用过高,尤其是当CPU还在尽力处理其他事情的时候,这时候如果有key过期,就可能两边(redis和其他服务)体验都不好,并且当定时key越多,分配的资源就越多,就越影响性能。
2.惰性删除:数据过期不是立刻删除,而是要获取数据的时候判断是否过期,如果过期再删除。
优点是节约CPU资源。
缺点是有较大的OOM风险。
3.定期删除:走定时任务,随机清理过期的数据。这个定时任务是通过时间进行资源分配的,比如1秒钟抽出0.1秒来执行删除任务。
这种策略是1和2的折中策略,优点是比1、2两个缺点好点,缺点是比1、2两个优点差点。
二、淘汰策略:是当数据放不下的时候,淘汰其他数据的策略。
相关配置:
1:maxmemory ?mb 释:分配给redis的内存大小 ,触发淘汰策略的阈值。
2:maxmemory-samples count 释:每次选取待删除数据的个数,采用随机获取数据的方式作为待检测删除数据。
3:maxmemory-policy noeviction 一共8个值。
八种淘汰策略:
1)noeviction: 不删除,直接返回报错信息。
2)在设置了过期时间的key:
volatile-lru:在设置了过期时间的key中,移除最久未使用的key。
volatile-random:在设置了过期时间的key中,随机移除某个key。
volatile-lfu:在设置了过期时间的key中,移除最近最少使用的key。
volatile-ttl: 在设置了过期时间的key中,移除准备过期的key。
3)全部的key:
allkeys-lru:移除最久未使用(使用频率最少)使用的key。
allkeys-random:随机移除某个key。
allkeys-lfu:移除最近最少使用的key。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值