缓存篇—缓存击穿

在很多场景下,我们的业务通常会有几个数据会被频繁地访问,比如秒杀活动,这类被频地访问的数据被称为热点数据。

如果缓存中的某个热点数据过期 了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接访问数据库,数据库很容易就被高并发的请求冲垮,这就是缓存击穿的问题。

可以发现缓存击穿跟缓存雪崩很相似,你可以认为缓存击穿是缓存雪崩的一个子集。

应对缓存击穿可以采取前面说到两种方案:

  • 互斥锁方案,保证同一时间只有一个业务线程更新缓存,未能获取互斥锁的请求,要么等待锁释放后重新读取缓存,要么就返回空值或者默认值。
  • 不给热点数据设置过期时间,由后台异步更新缓存,或者在热点数据准备要过期前,提前通知后台线程更新缓存以及重新设置过期时间;
相关推荐
于樱花森上飞舞13 分钟前
【Redis】初识Redis
数据库·redis·缓存
山楂树の2 小时前
【计算机系统原理】Intel 与 AT&T 汇编指令格式转换
汇编·学习·缓存
山楂树の2 小时前
【计算机系统原理】 直接映射(模映射) Cache 地址划分与访问过程
学习·缓存
cyforkk3 小时前
缓存穿透难题:当 Value 为空字符串时,该如何优雅处理?
缓存
呆子也有梦3 小时前
redis 的延时双删、双重检查锁定在游戏服务端的使用(伪代码为C#)
redis·后端·游戏·缓存·c#
roman_日积跬步-终至千里3 小时前
【2025下半年系统架构设计师案例分析】电商平台 MySQL + Redis 与缓存击穿治理
mysql·缓存·系统架构
入瘾5 小时前
Redis 服务启动失败
数据库·redis·缓存
cyforkk6 小时前
分布式缓存一致性:从核心争议到企业级解决方案
缓存
爱丽_6 小时前
大型系统构建与性能优化:缓存、负载均衡、分库分表与会话方案
jvm·缓存
Rsun0455116 小时前
Redis中实现访问量计数
数据库·redis·缓存