1.缓存击穿
解决方案:
1.逻辑过期
2.互斥锁。
3.主动刷新缓存(做一个定时任务,每隔多少秒,刷新一次缓存,CachePut),无法解决缓存机器突然坏了的情况
2.缓存穿透
数据库本身没有数据,导致缓存里没有数据。
请求去查时,缓存里没数据,请求都往数据库查,导致数据库压力大。
解决方案:
1.空也放缓存里,但是要是空list,即区分null和空list,区分缓存为空与数据库为空。
2.布隆过滤器
3.互斥锁
redis开启这个配置即可,默认是开启的
缓存未过期时不打印日志,即不走方法,直接读缓存返回数据。
3.缓存雪崩
解放方式:
1.分散热点KEY
2.限流