系统架构设计-Redis设计-缓存穿透、缓存击穿、缓存雪崩

Redis 缓存穿透、缓存击穿、缓存雪崩 核心区别对比

先一句话定性,再给场景、原因、危害、解决方案对比,超好记。

  1. 缓存穿透查不存在的数据,缓存、数据库都没有,请求直打数据库。
  2. 缓存击穿热点 Key 过期瞬间,大量请求同时打到数据库。
  3. 缓存雪崩大量 Key 同时过期 / Redis 宕机,缓存整体失效,流量全部压垮数据库。

一、详细对比表

对比维度 缓存穿透 缓存击穿 缓存雪崩
核心场景 查询数据库根本没有的数据 单个热点 Key 缓存过期 大批量 Key 同时过期 / Redis 挂了
请求流向 缓存没 → 数据库也没 缓存刚好过期失效 → 全打 DB 缓存大面积失效 → 流量全冲 DB
触发原因 恶意请求、参数非法、空数据查询 热点 Key 设置相同过期时间 1. 批量 Key 过期时间集中2. Redis 宕机 / 断电 / 集群故障
攻击 / 影响范围 分散、恶意爬虫 / 黑客攻击 单点热点流量瞬间打崩 全局、大面积服务雪崩、DB 瘫痪
典型例子 查 id=-1、乱输手机号、不存在商品 ID 秒杀商品、首页热门商品 Key 过期 凌晨所有缓存统一 1 小时过期,整点集体失效

二、各自解决方案

1. 缓存穿透 解决

  • 缓存空值 / 空对象,设置短期过期
  • 布隆过滤器:拦截不存在的 Key,请求压根不到 Redis
  • 接口层参数校验,非法参数直接拦截
  • 黑名单过滤恶意请求

2. 缓存击穿 解决

  • 热点 Key 永不过期(不设置 expire)
  • 互斥锁(分布式锁):只放一个请求去查 DB、更新缓存
  • 逻辑过期:后台异步更新缓存,不删 Key

3. 缓存雪崩 解决

  • 过期时间加随机值,打散过期时间,避免集中失效
  • Redis 高可用:主从 + 哨兵 / 集群,避免单点宕机
  • 服务层限流、降级、熔断
  • 多级缓存:本地 Caffeine + Redis 二级缓存

三、最简记忆口诀

  • 穿透:查无此物,两头都空
  • 击穿:单点热点,过期瞬间
  • 雪崩:集体失效,全军覆没
相关推荐
朝阳5819 分钟前
MySQL 主从复制 — Docker 双机灾备方案
数据库·mysql·docker
染翰9 分钟前
生产级 MySQL 内存占用过高排查指南
数据库·mysql
一 乐21 分钟前
网上订餐系统|基于springboot的网上订餐系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·网上订餐系统
guslegend27 分钟前
第3节:智能体配置表设计
数据库·人工智能
雷工笔记35 分钟前
SQL系列2:PostgreSQL 日期时间字段类型选择指南
数据库·sql·postgresql
L16247643 分钟前
原流程翻车?Redis 生产环境全场景安全升级操作手册(源码编译 + 包管理 + 热升级 + 回滚)
redis·安全·bootstrap
SAP上海工博云署1 小时前
2026年中小企业SAP服务商选型技术解析
大数据·运维·数据库·人工智能·信息可视化·运维开发·信息与通信
RestCloud1 小时前
版本迭代丨谷云科技ETLCloud V4.2版本更新速览
数据库·doris·etl·etlcloud·数据集成平台·datahub·ftp处理
Adair_z1 小时前
[SEO艺术重读] 第13篇 SEO教育与研究
java·网络·数据库
不爱吃糖の糖糖1 小时前
RAG 04:向量数据库与索引算法
数据库·算法