缓存篇—缓存击穿

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

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

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

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

  • 互斥锁方案,保证同一时间只有一个业务线程更新缓存,未能获取互斥锁的请求,要么等待锁释放后重新读取缓存,要么就返回空值或者默认值。
  • 不给热点数据设置过期时间,由后台异步更新缓存,或者在热点数据准备要过期前,提前通知后台线程更新缓存以及重新设置过期时间;
相关推荐
小饼干在学嘎瓦7 小时前
本地缓存和分布式缓存如何选择?
分布式·缓存
步十人13 小时前
【Redis】持久化机制
数据库·redis·缓存
yurenpai(27届找实习中)14 小时前
redis_点评(25.附件店铺—把数据库里的店铺按【类型分组】,批量导入Redis 的 GEO 地理位置结构)
java·redis·缓存
闪电悠米14 小时前
黑马点评-优惠券秒杀-05_local_lock_cluster_problem
java·spring boot·redis·缓存
MageGojo18 小时前
短链还原 API 怎么接入:展开跳转链路、查看状态码和最终落地页
数据库·redis·缓存
月落归舟18 小时前
详说缓存四大问题:预热、穿透、雪崩、数据不一致
缓存
骄马之死19 小时前
缓存与数据库一致性的核心方案
mysql·缓存
我叫张小白。19 小时前
基于Redis的缓存架构与一致性保障体系
数据库·redis·缓存·架构
我是一颗柠檬20 小时前
【Redis】数据类型详解Day2(2026年)
数据库·redis·后端·缓存
Rick199321 小时前
什么是Redis的 IO 多路复用
redis·缓存