增加缓存后带来的问题分析 缓存穿透,缓存击穿,缓存雪崩

缓存穿透,缓存击穿,缓存雪崩,第一次看到几个概念的时候,让我想到了高中语文的近义词分析,比如 监控 和监测,擅自和私自 ,时常听到口误,当然这不是大问题,只是会有一些困扰

缓存的基本逻辑:如果缓存有数据,从缓存拿数据,如果缓存没有数据,从数据库拿数据,并加到缓存中,返回

缓存穿透:大量数据库中不存在的数据,缓存中自然没有,结果是大量查询落到了数据库上,返回为空  

   布隆过滤器

缓存击穿:缓存的某条数据过期了,缓存中没有,大量的并发请求落到了数据库上,导致数据库压力突然增大 

   定时刷新,检查更新,多级缓存

缓存雪崩:在某一时间,大量的缓存数据过期,各种数据过期,这时各种请求都落到db,导致db压力变大,甚至挂掉

   |数据预热,随机过期时间,分布式缓存

这几个概念的意思太接近了,程序员不需要做语文词语辨析,这里我自己重新描述一下,其实看英文还歧义不大,汉语太博大精深了,不知道第一个翻译的是谁?

增加缓存后可能遇到的问题

缓存穿透(penetration):数据库空结果问题

缓存击穿(breakdown):超时并发访问问题

缓存雪崩(avalanche):超时大量失效问题

我希望大家讨论问题的时候,直接提问:“增加缓存后,数据库返回空带来的问题“,“某个数据超时后,大并发带来的问题” ,而不是什么是穿透,什么是击穿?

 

posted @ 2020-12-01 14:18  江山小画  阅读(94)  评论(0编辑  收藏  举报