博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试宝典系列-redis的失效机制
阅读量:6658 次
发布时间:2019-06-25

本文共 433 字,大约阅读时间需要 1 分钟。

  hot3.png

redis采用的是定期删除 惰性删除策略。 

定时删除cpu消耗过大定期删除,redis默认每个100ms检查,是否有过期的key,有过期key则删除。

需要说明的是,redis不是每个100ms将所有的key检查一次,而是随机抽取进行检查(如果每隔100ms,全部key进行检查,redis岂不是卡死)。

因此,如果只采用定期删除策略,会导致很多key到时间没有删除。于是,惰性删除派上用场。也就是说在你获取某个key的时候,redis会检查一下,这个key如果设置了过期时间那么是否过期了?如果过期了此时就会删除。

采用定期删除+惰性删除就没其他问题了么?

 不是的,如果定期删除没删除key。然后你也没即时去请求key,也就是说惰性删除也没生效。这样,redis的内存会越来越高。那么就应该采用内存淘汰机制最近最少算法(LRU)将最近的放到栈头,将最少的(栈尾)淘汰

转载于:https://my.oschina.net/suyain/blog/1862065

你可能感兴趣的文章
Redhat 5.3 Linux内核的升级!
查看>>
Ubuntu Mate:扩展存储到整张SD卡
查看>>
学习使用clojure(1)
查看>>
EXCEL 2010规划求解基础篇
查看>>
es学习5-slowlog
查看>>
nf_conntrack: table full, dropping packet
查看>>
Linux的五个查找命令:find,locate,whereis,which,type
查看>>
KK课表抓取教务系统
查看>>
mac上如何某端口号被哪些程序占用
查看>>
mac 随记
查看>>
易宝典文章——玩转Office 365中的Exchange Online服务 之二十四 配置垃圾邮件筛选器反垃圾邮件...
查看>>
读写者锁与生产者/消费者模式
查看>>
关于python中的if __name__=='__main__'语句问题
查看>>
节约时间的18种方法
查看>>
Debian下搭建zabbix监控
查看>>
病毒与***的查杀
查看>>
线程组
查看>>
涉密数据的处理
查看>>
我的友情链接
查看>>
【单机实现系列】通过scom2012对Hyper-V主机来监控和邮件报警②
查看>>