天增的博客
首页
博客
  • 分布式解决方案
  • Java并发工具包
  • redis
  • LeetCode
  • 系统设计
  • JVM体系
Github (opens new window)
Rss (opens new window)
  • zh-CN
  • en-US
首页
博客
  • 分布式解决方案
  • Java并发工具包
  • redis
  • LeetCode
  • 系统设计
  • JVM体系
Github (opens new window)
Rss (opens new window)
  • zh-CN
  • en-US
  • redis
  • Redis为什么这么快
    • redis单线程的问题
  • Redis基本数据结构
    • String的底层实现
    • List的底层实现
    • Hash的底层实现
    • Set的底层实现
    • ZSet的底层实现
  • Redis分布式缓存
    • 缓存击穿
    • 缓存穿透
    • 缓存雪崩
      • 三步骤
    • 缓存预热
  • Redis的分布式锁
    • 看门狗模式
    • Redlock
  • Redis集群
    • Redis数据淘汰策略
    • redis持久化
    • Redis数据删除策略
  • topic
  • redis
  • Redis分布式缓存
  • 缓存雪崩
2022-04-28
目录

缓存雪崩

# 缓存雪崩

当某一个时刻出现大规模的缓存失效,那么就会导致大量的请求打在数据库上面,导致数据库压力巨大,如果在高并发的情况下,可能瞬间就导致数据库党纪。

如果这个时候,马上重启数据库,马上又会有新的流量把数据库打死。

Xnip2021-09-16_16-10-29

造成缓存大规模失效的原因:

  1. Redis宕机
  2. 大量的热点Key在相同的时间过期

# 解决方案

# 三步骤

  • 事前:redis高可用部署,避免全盘崩溃;
  • 事中:本地缓存 + 限流降级,避免数据库被打死;
  • 事后:redis持久化,快速恢复缓存数据;
  • Redis集群高可用
    • 主从+哨兵
    • Redis Cluster
  • Redis开启AOF/RDB,尽快恢复redis访问
  • 热点key随机过期时间
    • 避免在同一个时间,请求涌入数据库
  • 提高数据库的容灾能力
    • 分库分表
    • 读写分离
  • 熔断限流降级
    • Hystrix
    • 阿里sentinel
最近更新
01
以 root 身份启动 transmission-daemon
12-13
02
Debian系统安装qbittorrent-nox
12-09
03
LXC Debain12安装zerotier并实现局域网自动nat转发
07-29
更多文章>
Theme by Vdoing | Copyright © 2015-2024 天增 | 苏ICP备16037388号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式