更新时间:2023-03-09 来源:黑马程序员 浏览量:

缓存穿透(Cache Penetration)指的是查询一个不存在的数据,由于缓存没有命中,请求会直接穿透到数据库,导致数据库压力过大,甚至可能造成宕机。
缓存击穿(Cache Miss)指的是某一个热点key在缓存中过期或者被清除,此时大量请求涌入,由于缓存中没有该key的缓存数据,请求会直接穿透到数据库,导致数据库压力过大,甚至可能造成宕机。
缓存雪崩(Cache Avalanche)指的是缓存中大量的数据在同一时间过期失效,导致大量的请求涌入数据库,导致数据库压力过大,甚至可能造成宕机。
以下是针对这三种情况的解决方法:
·在应用程序中添加合适的校验机制,过滤掉不存在的key,如将所有请求数据的唯一标识符(如id)通过一个哈希函数映射为一个固定的字符串,并判断字符串是否合法。
·对于查询结果为空的情况,可以将其缓存到缓存中,但是有效期较短,比如5分钟,防止恶意攻击。

·使用互斥锁或分布式锁,防止大量请求同时访问数据库。
·使用热点数据预加载,即在缓存过期之前,提前异步地加载数据,确保缓存一直有数据。
·使用不同的过期时间,避免大量的数据在同一时间过期失效。
·使用缓存的异步刷新机制,保证缓存中的数据不会同时过期失效。
·使用多级缓存,如本地缓存、分布式缓存和全局缓存,使得缓存的失效不会同时影响所有缓存节点。
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27