redis击穿、穿透、雪崩
2022-03-29 18:02:22 43 举报
简单描述redis击穿、穿透、雪崩
作者其他创作
大纲/内容
均匀是key过期,不集中在同一时间点
应用
nginx
查询促销商品
缓存与db数据不一致行
穿透:查询不存在的数据,redis未缓存,直接从db中也不存在,大量请求导致db压力过大
线程3
物理上永不过期,使用异步线程更新缓存
key2 :过期时间+随机值
从redis获取
雪崩:某一时刻redis(大量的key)失效或者挂了,导致大量请求直接访问db,导致db宕机。
redis
redis雪崩
缓存null值的数据
key3:过期时间+随机值
查询某商品
解决方案
mysql
击穿:某一时刻redis某个高并发的key失效,导致大量请求直接访问db,导致请求阻塞
是
异步更新
加互斥锁(同一时间仅有一个线程持有锁,其他线程阻塞等待锁)
从db获取
永不过期
命中缓存
将null值数据也写入缓存set key1 null
持有锁
等待
线程4
开始
高并发,效率低
直接访问db
从db获取返回null
redis穿透
结束
redis击穿
布隆过滤器
线程2
...
是否存在缓存
线程1
均匀过期
gateway
key1:过期时间+随机值
否
定期同步
请求
0 条评论
下一页