php redis缓存雪崩,Redis缓存雪崩、击穿

1、雪崩

当缓存系统宕机后,原先由缓存系统负担的请求处理瞬间落在了系统DB上,过高的并发量导致系统宕机。这便是缓存雪崩。

解决方案

1、事前 搭建高可用Redis环境,主从+哨兵,多节点,避免全盘崩溃

2、事中 本地ehcache缓存 + hystrix限流&降级,避免DB被高并发打死

3、事后 Redis持久化,一旦重启机器,自动从磁盘恢复数据,快速恢复缓存数据

2、过多且频繁的请求缓存中不存在的数据,将会导致直接请求DB,这便是缓存击穿。

解决方案

1、单一线程处理key值

2、互斥锁是业界比较常用的做法,是使用mutex。简单地来说,就是在缓存失效的时候(判断拿出来的值为空),不是立即去load db,而是先使用缓存工具的某些带成功操作返回值的操作(比如Redis的SETNX或者Memcache的ADD)去set一个mutex key,当操作返回成功时,再进行load db的操作并回设缓存;否则,就重试整个get缓存的方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值