Redis的内存管理

1、redis的过期策略,保持内存的使用率,删除设置了过期时间,并且过期的数据

        1、惰性删除,用的时候去判断有没有过期,过期删除

        2、定期清除,servercorn执行100ms一次,其中redisdb里面专门存储有过期时间的key,扫          描20key,一个桶如果被扫到,就一定被扫完,扫描到key就删除,最多扫描400个桶

        3、如果扫了400个空桶,或者过期数据比例超过10%则循环执行2步

2、redis的淘汰策略,针对没有设置过期时间的key,或者设置了过期时间但是没到期的key,都是有效的数据,内存满的时候,不得已选择去删除一些,删除到新的key能存进去

        1、默认策略是novication,能读不能写,报oom

        2、共有一下几种策略allkey-lru,volation-lru,allkey-lfu,volation-lfu,ttc,allkeys-random,volation-random,共8中策略,其中allkeys是在所有的key中寻找,volation是在过期的key中寻找,lru是最久没使用的,lfu是使用次数最少的

        LRU:最久没使用的,用当前时间减去最后一次访问时间

        LFU:使用次数最少的,访问一次+1,会导致去年很火的数据,不会被淘汰,今年一般的数据,被淘汰掉,解决方案是最多是255,如果当前次数5<count<25,越往上越难加,如果小于等于5,访问一次加一次,按照配置的衰减因子衰减(多久没访问减一次)衰减

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值