详解redis(16):缓存击穿

一、什么是缓存击穿?

缓存击穿
某一个"热点 Key"在某一时刻失效 ,大量并发请求同时访问这个 Key,导致请求瞬间全部打到数据库,数据库压力骤增。

为什么叫"击穿"?

缓存是"墙"

热点 Key 是"薄弱点"

一过期 → 并发请求 把缓存打穿

二、缓存击穿是怎么发生的?

典型场景(非常真实)

首页商品信息

热门文章

秒杀商品库存

明星用户信息

不是所有 key 失效,而是一个 key 被并发"围殴"

缓存击穿的完整过程

1. 热点 key 到期
2. Redis 返回 miss
3. 高并发请求同时查 DB
4. DB QPS 暴涨
5. 服务线程阻塞
6. 接口超时 / 崩溃

三、如何解决缓存击穿?

同一时间,只允许一个请求去查数据库

一、互斥锁

思路

缓存 miss 时

先抢锁

只有抢到锁的人查 DB

其他请求等待 / 返回旧值

二、热点数据永不过期

Redis key 不设置 TTL

value 中带过期时间

三、提前刷新

热点 key

到期前主动更新

相关推荐
jiayou6414 小时前
KingbaseES 表级与列级加密完全指南
数据库·后端
用户3074596982071 天前
Redis 延时队列详解
redis
GBASE1 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
烤代码的吐司君2 天前
Redis 数据结构 ZSet, BIT, HyperLogLog,Geo 空间数据
redis·后端
xiezhr2 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
吃糖的小孩3 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
笃行3503 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3503 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行3504 天前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库