码迷,mamicode.com
首页 > 其他好文 > 详细

redis故障时的一些概念

时间:2019-11-23 23:58:19      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:sts   分布   exist   bitmap   直接   导致   一个   setnx   使用   

1.缓存穿透

概念
访问一个不存在的key,缓存不起作用,请求会穿透到DB,流量大时DB会挂掉。

解决方案
采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤;
访问key未在DB查询到值,也将空值写进缓存,但可以设置较短过期时间。

2.缓存雪崩

概念
大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时DB请求量大、压力骤增,引起雪崩。

解决方案
可以给缓存设置过期时间时加上一个随机值时间,使得每个key的过期时间分布开来,不会集中在同一时刻失效。

3.缓存击穿

概念
一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。
解决方案
在访问key之前,采用SETNX(set if not exists)来设置另一个短期key来锁住当前key的访问,访问结束再删除该短期key。

redis故障时的一些概念

标签:sts   分布   exist   bitmap   直接   导致   一个   setnx   使用   

原文地址:https://www.cnblogs.com/xufengnian/p/11920703.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!