redis缓存穿透以及缓存雪崩

缓存穿透的原因及解决方法

原因: 用户查询的key不存在,对应的id在数据库也不存在,此时非法用户进行攻击,大量的请求会打在db上,造成宕机从而影响整个系统,这种现象称为缓存穿透。本质就是请求不存在的key绕开redis的缓存层。
方法一: 将空数据也缓存起来,比如空字符串和空对象空数组或list。
方法二: 布隆过滤器。实际上就是一个bit数组。

redis缓存雪崩的原因以及解决方法:

原因: 缓存中的数据大批量失效,然后这个被使用的数据又有大批量的请求进来。但是此时由于redis中的key全部失效了,导致所有的请求直接打到db上,造成宕机。本质就是缓存失效造成热点key的请求没有命中redis的缓存层。
方法一: 设置对应热点key永不过期。
方法二: 过期时间错开,比如过期时间采用随机生成,并且热点数据过期时间设置长一点,非热点数据设置短一点。
方法三: 多缓存结合,先请求redis,redis无再请求memcache,如果都没命中再去请求db。
方法四: 当然是使用第三发提供的redis服务器啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值