redis缓存的雪崩和穿透

58 篇文章 1 订阅

什么是缓存雪崩

redis故障或者大量的消息在同一时间失效,导致大量热点缓存失效,于是就会有大量的流量涌入数据库,如果数据库扛不住压力,那么就会直接引发后台系统崩溃。

如何解决缓存雪崩

  • 保证redis集群的高可用性,比如保证分布式存储架构和主从结构的运行,这样的话一个slave宕机还有master,一个master宕机的话会有slave顶上来。
  • 不要太过依赖redis内存,也可以使用ehcecha缓存进行缓冲
  • 使用hystris做限流和降级,防止过多的流量大量涌入数据库
  • 缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。
  • redis开启数据持久化,哪怕发生了宕机,立即重启后也能快速恢复缓存数据

什么是缓存穿透

某些恶意用户,对缓存和数据库中不存在的数据进行大量的访问,比如id=-1的数据,那缓存中肯定是没有的,就会直接访问数据库,如果这部分流量过大,也会对数据库造成压力,对正常用户的使用造成影响。

如何解决缓存穿透

每次系统从数据库中没有查询到数据,就将这个key写一个空值到缓存中,比如第一次查询id=-1在数据库中没查询到数据,那么将id=-1这个写到缓存中。下一次请求id=-1的数据是,缓存就直接返回空值,不会再访问数据库了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木小同

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值