数据缓存历险记(二)



背景

上回说到,数据已经完成了基本的三个任务,获取了conf大哥赏识,其中淘汰警察也对它评价很高,这次淘汰警察就给数据出了个挑战,题目为,一个过期数据,在内存中是如何被淘汰的,会经历什么?

数据缓存历险记(二)

带着这个问题,我们从小数据的视角开始冒险吧。

数据过期后会遇到什么?

起初,数据经过过期时间后,会在内存中晃荡,不会立马删除,数据会慢慢的遇见第一个经理,名为过期键的删除策略

这个经理可不得了,手里有三大利器;

分别是:

  • ①定时删除
  • ②惰性删除:
  • ③ 定期删除:

这个三把利器,可以让过期键策略,在数据淘汰中,占据大半江山, 基本上可以处理一半的数据,而且效率也不错;说着就让数据自己选一个 ,经理不想亲自动手,

可萌可萌的数据这时候却糊涂了起来, 慢通通的说,这三种利器有啥区别啊,到底有什么厉害之处啊, (数据心里有点不服气,就算是死了,也要死得其所)

既然你这么诚心的份上,那我就给你讲讲我的宝贝,果然是初生牛犊不怕虎, 过期键经理心里默念道,感情是要给我上课的,不行,让你装到我还以后怎么在淘汰数据界中混,今天高低也要把你办了?

数据可要小心了, 过期键经理可不是说说而已

说着就端起了,第一件珍宝:

定时删除

本质上:

大程度保持数据的新鲜度, 但是每次都有挂载一个定时任务去扫描,是否临界过期时间, 产生大量的性能消耗

对CPU造成额外的压力,  (用时间换取空间

数据缓存历险记(二)

惰性删除

本质上:

当前访问数据,发现数据过期,不会马上删除

等下次,访问,数据过期,会加载删除

Redis中过期,但是没有删除,内存中存储大量的过期数据, 对内存不友好 对于CPU友好,

数据缓存历险记(二)

定期删除:

对内存和时间CPU进行两者中和;

本质上:

每隔一段时间执行一次删除过期键的操作,并通过 限制删除操作的时长和频率来减少对CPU时间的影响

过期键经理的总结

虽然我这三大法宝,功能都是删除数据的,但是用的比较多的,对于时间空间,内存CPU影响比较小的方式,选择 “定期删除”,因为有很大的优势:

周期性比较强:

特点一:CPU可以自定义检测频率时长

特点2:内存压力减少, 长期过期数据会被持续清理

随机抽查

好处是:大大提高我们内存删除的效率,但是因为是随机抽查的,所以,会存在漏网之鱼

面试官在线:

面试官:不错不错,这三种策略但是还是不能完全解决redis内存的问题, 如果说定期删除从来没有被抽查到呢,

惰性删除时,过期键值,但是没有被访问到, 持续如此,redis中存在大量的key, 你可以说说你的思路吗?

答案是:那我们有大招, 缓存淘汰策略

过期键的删除策略,不能保证内存, 这就要使用大招, 内存淘汰策略了:

数据内心独白

原来,我们之前的兄弟数据,都是被定时删除,不定时的惰性删除,和定期删除解决掉了, 看来这些淘汰警察的手段很硬,硬钢划不来,我要继续做卧底,看看他们是如何将我淘汰掉,

卢卡寄语

数据经过对于过期键经理的折磨, 冒死送出了一份淘汰警察的数据处理过程, 目前是 经过了第一关,听说还有缓存淘汰策略BOSS在等着他, 数据也算是厉害,

明天数据,要开始LRU、LFU,TTL,和RANDOM的淘汰策略中去,基于两个维度,四个方面,八条策略,全方位的展示 淘汰警察的手段,

期待数据的带来的好消息了,同时也数据也期待你的点赞,晚安了


原文始发于微信公众号(卢卡多多):数据缓存历险记(二)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/23451.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!