更新时间:2023-03-09 来源:黑马程序员 浏览量:
缓存穿透(Cache Penetration)指的是查询一个不存在的数据,由于缓存没有命中,请求会直接穿透到数据库,导致数据库压力过大,甚至可能造成宕机。
缓存击穿(Cache Miss)指的是某一个热点key在缓存中过期或者被清除,此时大量请求涌入,由于缓存中没有该key的缓存数据,请求会直接穿透到数据库,导致数据库压力过大,甚至可能造成宕机。
缓存雪崩(Cache Avalanche)指的是缓存中大量的数据在同一时间过期失效,导致大量的请求涌入数据库,导致数据库压力过大,甚至可能造成宕机。
以下是针对这三种情况的解决方法:
·在应用程序中添加合适的校验机制,过滤掉不存在的key,如将所有请求数据的唯一标识符(如id)通过一个哈希函数映射为一个固定的字符串,并判断字符串是否合法。
·对于查询结果为空的情况,可以将其缓存到缓存中,但是有效期较短,比如5分钟,防止恶意攻击。
·使用互斥锁或分布式锁,防止大量请求同时访问数据库。
·使用热点数据预加载,即在缓存过期之前,提前异步地加载数据,确保缓存一直有数据。
·使用不同的过期时间,避免大量的数据在同一时间过期失效。
·使用缓存的异步刷新机制,保证缓存中的数据不会同时过期失效。
·使用多级缓存,如本地缓存、分布式缓存和全局缓存,使得缓存的失效不会同时影响所有缓存节点。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19