Redis缓存击穿,缓存穿透,缓存雪崩的解决方案
缓存击穿:缓存中没有,数据库中有
某一热点数据缓存过期的瞬间,大量请求同时透过缓存,访问到数据库。
- 可以使热点数据用不过期
- 互斥锁(使用key值加锁要优于对过程加锁)
缓存穿透:缓存中没有,数据库也没有
- 可以对缓存空对象
- 使用布隆过滤器,将数据库中一定不存在的对象过滤掉
缓存雪崩:在某一个时间段,缓存集中失效
- 解决方法是不同类型的对象设置不同的过期时间,也可以在过期时间中加入随机因子,尽量分散缓存过期的时间段。
缓存击穿:缓存中没有,数据库中有
某一热点数据缓存过期的瞬间,大量请求同时透过缓存,访问到数据库。
缓存穿透:缓存中没有,数据库也没有
缓存雪崩:在某一个时间段,缓存集中失效