缓存雪崩

当缓存服务挂了或在某一时期所有的缓存同时过期,所有的流量都打到DB中,可能导致DB压力过大甚至直接宕机

应对方案

  1. redis高可用,避免全盘皆崩
  2. 通过设置进程内缓存防止缓存服务挂了之后所有流量直接打到DB。例如:ehcache
  3. 通过限流组件限制一部分流量,从而保证DB不会宕机。例如:hystrix

缓存雪崩.png

缓存穿透

访问缓存中不存在的数据,导致每次请求都会直接访问数据库,导致DB压力过大

应对方案

  1. 缓存一段时间空值
  2. 提前拦截,例如使用布隆过滤器提前判断数据是否存在