缓存击穿、穿透、雪崩
2021-08-27 11:11:06 0 举报
AI智能生成
简单阐述缓存服务常见问题及解决方案
作者其他创作
大纲/内容
缓存穿透
特点
db中不存在
危害
恶意请求不存在的数据导致所有请求最终都落到db中
方案
布隆过滤器
通过redission实现,可过滤99%的无效请求
存在问题:数据删除时无法更新
带计数的布隆过滤器
定时更新布隆过滤器
缓存无效的数据结果并设置过期时间
缓存击穿
特点
cache中不存在,db中存在
一般是热点数据过期,导致同一时刻大量请求到db
单一数据,集中请求,侧重流量
危害
同样是突发流量导致db压力剧增
方案
互斥锁
缓存无法命中请求db时根据key加锁,其余请求阻塞,db中获取后再回填cache
可通过redis的setNx实现,数据量不大时也可使用api自带的锁
缓存雪崩
特点
缓存服务不可用或大量缓存过期
大量数据同时失效并被请求,侧重数据量
危害
db或后端系统压力剧增进而引发一连串的服务不可用
方案
分散的缓存失效时间
无法解决缓存服务或网络不可用情况
设置线程队列,阻塞请求
用户体验差
二级缓存
缓存服务异地灾备
收藏
0 条评论
下一页