微前端架构如何改变企业的开发模式与效率提升
548
2022-12-01
分布式|面试官问的缓存雪崩、缓存穿透、缓存击穿,你都答对了么
十四、缓存雪崩、缓存穿透、缓存击穿
缓存穿透
用户请求的key再数据库中并不存在,是一个违法的key,导致每次都从数据库中查找,从而可能压垮数据库。如果黑客利用大量的违法key进行请求,将会导致数据库瞬间崩塌
解决方案
可以使用redis的布隆过滤器,将所有可能的key存放到bitmap中,一个一定不存在的key将会被布隆过滤器拦截掉,从而截断对数据库的访问,如果key没有被布隆过滤器拦截下来,查询库中,没有返回结果,我们可以将一个空值存放到缓存中,缓存时间不宜过长。
缓存击穿
某个被高频访问的key在某一时间点过期,这时出现大量对这个key的访问,这时候缓存中又没有数据,导致同时去库中查询数据,造成数据库压力瞬间增大。
解决方案
设置互斥锁设置key永不过期(不推荐)
缓存雪崩
指大批量的key在同一时刻过期,导致数据库查询压力瞬间增大,与缓存击穿不同的是,缓存雪崩是大批量的key同时过期。
解决方案
缓存key的过期时间设置为随机设置数据用不过期
总结
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~