【心得】缓存穿透与缓存击穿总是记混,一文从英语单词含义角度分析带你区分清楚!
一句话省流版:缓存穿透的英语为cache penetration,可以翻译为缓存渗透,“渗透”联想到网安的攻击渗透,故缓存穿透是绕过防护进行攻击;
缓存击穿的英语为"cache breakdown",可以翻译为缓存故障,“故障”联想到零件失效、不发挥作用,故缓存击穿是由于某个Key过期失效造成的。
文章目录
- 前言
- 缓存穿透(cache penetration)
- 缓存击穿(cache breakdown)
- 参考文章
前言
在Redis学习过程中,绕不开的话题就是缓存三剑客(缓存穿透、缓存击穿与缓存雪崩)的定义与其解决方法。相关的基础知识许多文章都进行了总结,本文不再赘述。但缓存穿透与缓存击穿这两个专业名词在中文语境下含义相近,因此记忆两者时容易记混出错,笔者查阅了相关资料。发现如果从英语词源角度分析的话,会发现提出该概念的外国友人并不是有意刁难,理清后区分二者也将变得更加容易。
缓存穿透(cache penetration)
缓存穿透的英文名为cache penetration,“Penetration”表示穿透、渗透、穿透性攻击或穿透行为。学习或者了解过网安行业的同学一定对渗透测试不陌生:
“渗透测试”(Penetration Testing),这是一种模拟攻击手段,用于评估计算机系统、网络或应用程序的安全性。渗透测试的核心目的是通过模拟真实攻击者的行为,主动发现系统中的漏洞、弱点和潜在风险,以便在被恶意攻击者利用之前,及时修复和加固系统.
可见缓存的penetration,与渗透关联密切,也就是与攻击有关,因此缓存穿透就是绕过防护进行攻击,体现的是其它人对Redis的破坏行为造成的后果。
(事实上我觉得如果把缓存穿透翻译成缓存渗透能更好理解一点)
缓存击穿(cache breakdown)
缓存击穿的英文名为cache breakdown,“Breakdown”表示故障、损坏,故障与损坏针对一台机器的话往往是形容这台机器的某个零件,对应到Redis这个机器的话,就是某一个热点Key这个零件故障损坏了(也就是失效),体现的是Redis本身出现了问题造成的后果。
大家紧抓“透”这个字,联想到缓存穿透就是缓存渗透,就是一种攻击,就能把二者区分开来啦!
参考文章
https://www.zhihu.com/question/628103562
https://segmentfault.com/a/1190000046144997
https://bbs.csdn.net/topics/393560272