提示:文章先作为初版,等后续时间充足后,补充更深的内容
文章目录
缓存穿透、缓存击穿、缓存雪崩
一、区别
缓存穿透(Cache Penetration):
缓存穿透指的是恶意或非存在的请求不断地访问缓存和后端存储,导致缓存无法命中,每次请求都需要查询数据库或其他存储系统。这会增加数据库或存储系统的负载,并可能导致性能下降。
常见的解决方案包括在查询非法或不存在的数据时,将其缓存为特殊值(如null),或使用布隆过滤器等技术来过滤无效的请求。
缓存击穿(Cache Breakdown):
缓存击穿指的是当某个热点数据过期或被删除时,大量并发请求同时访问该数据,导致缓存无法命中,请求直接访问后端存储系统。这会对后端存储系统造成压力,并可能导致性能下降。
常见的解决方案包括在缓存失效时使用互斥锁或分布式锁来控制只有一个线程去加载数据并更新缓存,或者使用异步更新机制来避免大量请求同时访问后端存储系统。