缓存穿透
缓存和数据库都没有命中数据库
解决方案:
1)把空对象缓存起来
2)布隆过滤器 拦截一定不存在的key
缓存击穿
数据在某个时刻批量过期,大部分请求直接落到数据库
解决方案:
1)热点数据可以设置不过期
2)批量入库数据,设置合理的过期时间
3)访问数据的时候,更新过期时间
缓存雪崩
缓存大面积过期或者系统出现故障导致请求直接落到数据库
解决方案:
1)搭建高可用的Redis集群和哨兵
2)限流降级:加锁或者使用队列
3)数据预热 并且设置不同的过期时间