跳至主要內容

1 缓存穿透

勇哥约 478 字大约 2 分钟

1 缓存穿透

2 缓存击穿

3 缓存雪崩

缓存雪崩指的是因为某些原因导致缓存中大量的数据同时失效或过期,导致后续请求都落到数据源上,令数据源在短时间内压力剧增。

为什么会出现缓存大量数据同时失效或者过期呢?

1、大量缓存数据同时过期

2、缓存服务出现故障

出现这种情况,往往是系统有专门的缓存预热功能,也可能大量公共数据是由某一次冷操作加载的,这样都可能出现由此载入缓存的大批数据具有相同的过期时间,在同一时刻一起失效。

还有一种情况是缓存服务由于某些原因崩溃后重启,此时也会造成大量数据同时失效,这种现象被称为缓存雪崩。要避免缓存雪崩问题,通常会采取下面的三种办法:

解决方案通常包括使用分布式缓存部署、设置不同的过期时间、应用程序限流等措施来避免缓存失效时间集中在同一时间段,以及使用缓存预热和自动刷新机制等手段来减轻缓存压力。

  1. 提升缓存系统可用性,建设分布式缓存的集群。
  2. 启用透明多级缓存,各个服务节点一级缓存中的数据通常会具有不一样的加载时间,也就分散了它们的过期时间。
  3. 将缓存的生存期从固定时间改为一个时间段内的随机时间,譬如原本是一个小时过期,那可以缓存不同数据时,设置生存期为 55 分钟到 65 分钟之间的某个随机时间。

4 缓存污染