Redis当中容易出现的安全问题(雪崩、穿透、击穿):

缓存雪崩:

缓存雪崩指的是在短期之内大量的键过期或失效,导致大量的请求直接访问数据库,给数据库或者是后端服务器带来巨大的压力,导致系统性能下降甚至是系统崩溃。

产生原因:

第一个:在设置键过期时间的时候,刚好设置的相同的过期时间,导致大量的键值同时过期

第二个:缓存服务器出现故障,无法提供服务

解决方法:

第一个:在设置键的过期时间的时候,设置随机的过期时间防止大量的键同时过期。

第二个:实现缓存预热,在刚开启系统的时候,将一些热门数据提前放入缓存当中

第三个:设置熔断机制,当键大量失效的时候,直接向请求返回默认值或者是错误,避免大量请求直接访问后端服务以及数据库服务。

第四个:使用分布式缓存,将数据储存在多个服务节点上,将请求分散,缓解节点压力。

第五个:实时监控和报警,监控缓存系统的状态,及时发现异常情况,并通过报警机制提醒工作人员

缓存穿透:

缓存穿透是指存在大量的请求访问数据库以及缓存中不存在的数据

解决方法:

一:布隆过滤器:在查询请求到达时,直接判断数据库中是否含有该值,若无,则直接返回错误 二:返回空值,如果数据库和缓存中都不存在访问值,那么在缓存中将该键对应的值设为空值 三:请求限流,对于一些恶意的请求,直接返回错误。

缓存击穿:

缓存击穿指的是热门数据过期,导致大量请求访问数据库。

解决方案:

一:将热门数据的key设置为永不过期或者将过期时间设置长一点或者使用逻辑过期,逻辑过期之后才异步的查询数据库,在更新数据期间,返回旧的数据。

二:加上分布式锁或者是互斥锁。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值