分布式|面试官问的缓存雪崩、缓存穿透、缓存击穿,你都答对了么

网友投稿 508 2022-12-01

分布式|面试官问的缓存雪崩、缓存穿透、缓存击穿,你都答对了么

分布式|面试官问的缓存雪崩、缓存穿透、缓存击穿,你都答对了么

十四、缓存雪崩、缓存穿透、缓存击穿

缓存穿透

用户请求的key再数据库中并不存在,是一个违法的key,导致每次都从数据库中查找,从而可能压垮数据库。如果黑客利用大量的违法key进行请求,将会导致数据库瞬间崩塌

解决方案

可以使用redis的布隆过滤器,将所有可能的key存放到bitmap中,一个一定不存在的key将会被布隆过滤器拦截掉,从而截断对数据库的访问,如果key没有被布隆过滤器拦截下来,查询库中,没有返回结果,我们可以将一个空值存放到缓存中,缓存时间不宜过长。

缓存击穿

某个被高频访问的key在某一时间点过期,这时出现大量对这个key的访问,这时候缓存中又没有数据,导致同时去库中查询数据,造成数据库压力瞬间增大。

解决方案

设置互斥锁设置key永不过期(不推荐)

缓存雪崩

指大批量的key在同一时刻过期,导致数据库查询压力瞬间增大,与缓存击穿不同的是,缓存雪崩是大批量的key同时过期。

解决方案

缓存key的过期时间设置为随机设置数据用不过期

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Postgres扩展】pg_auto_failover支持高可用性和自动故障转移
下一篇:SLA服务可用性4个9是什么意思?如何保证服务的高可用性 HA(High Availability)?...
相关文章

 发表评论

暂时没有评论,来抢沙发吧~