redis缓存的穿透

一、缓存穿透的出现
缓存穿透的意思就是缓存永远无法拦截这个请求,而让它去了数据库。当一个查询的key不存在redis,去数据库查也没有,这样也就没法做缓存,这样当要查这个key时,就永远会去到数据库了,如果此时并发很高,那么数据库就很危险了,这叫缓存穿透。缓存穿透一般是恶意的并发请求。

二、缓存穿透的预防
1、去到数据库之前先设置zookeeper分布式锁,类似于缓存击穿的处理。
参考:https://blog.csdn.net/raoxiaoya/article/details/101011508

2、使用布隆过滤器
原理是,穿过redis去数据库之前先检查一下要查找的key是否在布隆过滤器里面,如果不存在则说明本身就是不存在的,去了数据库也是查不到,那么有可能是恶意的请求,直接返回。当然布隆过滤器里面存放的是全部的key,它实际上是一个集合,缺点是有一定误判率的,优点是它内部的算法无伦在时间上还是在空间上都是表现不错的。
关于布隆过滤器原理及其实现:
https://blog.csdn.net/raoxiaoya/article/details/101026919
https://blog.csdn.net/raoxiaoya/article/details/101018840

3、接口限流与熔断、降级
重要的接口一定要做好限流策略,防止用户恶意刷接口,同时要降级准备,当接口中的某些服务不可用时候,进行熔断,失败快速返回机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值