Redis相关缓存问题:雪崩,穿透

Redis 相关缓存问题

缓存雪崩

概念

缓存雪崩其实有很多的原因,缓存服务器宕机,或者缓存服务器集群故障,等等,总体来说属于系统架构中的缓存部分架构失效,导致大量的请求到达持久层数据库,由数据库处理请求,但是数据库的每秒并发最高不能超过2000个,突然增大的流量访问可能会直接让数据库挂掉,此时dba 无论怎么重启都会导致数据库宕机,进而导致整个服务挂掉,按照下面的现象图说明:
缓存雪崩模型图
其实缓存雪崩这类的问题,并不是再生产环境中一定会出,但是一旦出现之后,往往造成的影响是巨大的
并且,缓存雪崩这样的问题其实并不能完全处理,也没有一定完美的处理方法,只能是尽量增强系统架构的健壮性,从而将损失降到最小

处理缓存雪崩的方法

事前

Redis 高可用性,避免全盘崩溃

事中

本地ehcache缓存 + hystrix 限流&降级,避免Mysql 被打死

事后

redis 持久化,快速恢复缓存数据

生产环境缓存系统模型演示

生产环境多级缓存模型图

缓存穿透

产生原因

系统接受到5000个请求,但是这些请求数据在数据库和缓存中都不存在,这样的话,数据库中的请求量肯定会激增,同样很容易将数据库打死

解决办法

当数据库中没有查到这个数据的时候,再缓存中配置一个空值,然后将缓存中的key对应的value发送给业务端
其实这种方式也是有点问题,所以尽量在业务设计的时候,通过一些别的方式进行处理,否则会导致缓存空间不足,同样会影响到业务的响应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值