Redis分布式锁进阶第三十八篇

Redis分布式锁进阶第三十八篇:缓存穿透、击穿、雪崩 生产级完整解决方案

前言

前面篇章全部围绕Redis分布式锁进行深度讲解,本篇开始转入Redis缓存生产核心难题。缓存穿透、缓存击穿、缓存雪崩是面试必问、生产必踩的三大故障。本文保持连载简洁干货风格,直白讲清成因、风险、落地解决方案,全部为线上可直接使用的生产方案。

一、缓存穿透(查询不存在的数据)

1. 概念成因

用户请求的数据缓存没有、数据库也没有,请求直接穿透缓存,全部打到数据库。 常见场景:恶意伪造id、非法参数、空数据查询。

2. 危害

大量空请求压垮数据库,数据库频繁查询空数据,CPU飙升,正常业务SQL被阻塞。

3. 生产解决方案(由简到优)

  • 空值缓存:查询为空,依然缓存空数据,过期时间短(30s~5min),避免重复穿透。

  • 布隆过滤器:前置拦截,判断数据是否存在,不存在直接拦截,不访问Redis、数据库。

  • 参数校验:非法id、负数、空字符串直接在网关层拦截。

  • 限流防刷:单ip、单账号限制请求频率。

4. 优缺点说明

空值缓存实现最简单;布隆过滤器适合海量数据、高并发拦截;一般业务空缓存+参数校验足够使用。

二、缓存击穿(热点key过期)

1. 概念成因

某一个热点key突然过期,海量并发请求瞬间打到数据库,单节点压力爆炸。 典型场景:秒杀商品、爆款活动、首页热门数据。

2. 和穿透区别

穿透:查不存在数据;击穿:查存在数据,刚好key过期

3. 生产解决方案

  • 互斥锁(常用):Redis分布式锁,同一时间只允许一个线程查库,其他线程等待。

  • 热点key永不过期:取消expire,后台异步更新,避免主动过期。

  • 逻辑过期:数据内置过期时间,Redis不删除,后台异步刷新,业务永远有数据。

4. 业务选型

普通热点数据:永不过期;强一致性活动数据:分布式锁;高并发不准停机:逻辑过期。

三、缓存雪崩(大批量key同时失效)

1. 概念成因

大批量缓存key同一时刻集体过期,或者Redis宕机,大量请求瞬间压入数据库,造成数据库雪崩宕机。

2. 产生场景

  • 批量导入数据,过期时间设置一致;

  • Redis主从切换、宕机、断电;

  • 缓存热点集中,过期时间统一。

3. 生产解决方案

  • 过期时间加随机值:基础方案,打散过期时间,避免集中失效。

  • 多级缓存:本地Caffeine缓存 + Redis缓存,双层兜底。

  • Redis高可用:哨兵、集群部署,避免单机宕机。

  • 服务熔断降级:Redis异常时,直接返回默认数据、友好提示,不查库。

  • 定时预热缓存:高峰期前提前刷新热门key。

四、三者极简区别(面试必背)

类型 核心原因 攻击对象 最优方案
穿透 查询不存在数据 数据库 空缓存+布隆过滤器
击穿 单个热点key过期 数据库 分布式锁、永不过期
雪崩 大批量key同时失效 整套服务 随机过期+多级缓存+降级

五、生产通用缓存规范

  1. 所有缓存统一加随机过期时间,预防雪崩;

  2. 空数据务必缓存,时间不宜过长;

  3. 热门商品禁止固定过期时间,优先永不过期;

  4. 对外接口必须加限流、熔断、降级;

  5. 核心业务必须部署Redis集群,禁止单机上线;

  6. 禁止大量冷数据同时写入,防止批量过期。

相关推荐
yxlalm3 分钟前
对话记忆持久化-Redis热与MySQL冷
android·redis·mysql
ly768910 分钟前
磁盘 I/O 延迟突增:用 iostat、blktrace 与火焰图定位到具体调用栈
java·linux·前端·数据库·iostat·磁盘 i/o·blktrace
倔强的石头_11 分钟前
数据迁移工具KDMS如何生成量化评估报告
数据库
冰暮流星15 分钟前
mysql多表练习2
数据库·sql·mysql
天天喝旺仔21 分钟前
Git 内部原理深度解析:从 blob/tree/commit 对象到 packfile 与垃圾回收
数据结构·数据库·git·算法·哈希
风哥2号3 小时前
数据库教程FGMT52‑PostgreSQL用户权限与安全管理
数据库·postgresql
风哥2号9 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
YangYang9YangYan10 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
西安栈上月明软件科技11 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
anxiao_m11 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传