Redis缓存雪崩,击穿穿透和解决方法

1. 缓存雪崩是指在某个时间点,⼤量缓存同时失效,导致请求直接访问数据库或其他后端系统,增加了系统负载。

对于缓存雪崩,可以通过合理设置缓存的过期时间,分散缓存失效时间点,或者采⽤永不过期的策略,再结合定期更新缓存。

2. 缓存击穿是指⼀个缓存中不存在但是数据库中存在的数据,当有⼤量并发请求查询这个缓存不存在的数据时,导致请求直接访问数据库,增加数据库的负载。典型的场景是当⼀个缓存中的数据过期或被清理,⽽此时有⼤量请求访问这个缓存中不存在的数据,导致⼤量请求直接访问底层存储系统。

对于缓存击穿,可以采⽤互斥锁(例如分布式锁)或者在查询数据库前先检查缓存是否存在,如果不存在再允许查询数据库,并将查询结果写⼊缓存。

3. 缓存穿透是指查询⼀个在缓存和数据库都不存在的数据,这个数据始终⽆法被缓存,导致每次请求都直接访问数据库,增加数据库的负载。典型的情况是攻击者可能通过构造不存在的 key ⼤量访问缓存,导致对数据库的频繁查询。

对于缓存穿透,可以采⽤布隆过滤器等⼿段来过滤掉恶意请求,或者在查询数据库前先进⾏参数的合法性校验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值