缓冲三大问题

缓存穿透

恶意请求cache or db 中不存在的数据

  • 做好IP限流,黑名单校验,防止大量恶意请求
  • 做好业务判断
  • 布隆过滤器,不过这可能存在误判,但一定能保证拦截请求不存数据的请求

缓存击穿

某一热点key失效,数据库崩

  • 加互斥锁,保证缓存失效时只有一个请求去访问数据库更新缓存,但其他请求会阻塞
  • 提前预热好数据
  • 最重要的是做好降级,熔断。因为某些热点key是不可预判的,比如微博某明星热搜

PS:

缓存雪崩

大面积的热点key失效,数据库崩

  • 过期时间错开
  • 多级缓存
  • 雪崩后要做好降级限流熔断处理