缓存篇—缓存击穿

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

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

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

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

  • 互斥锁方案,保证同一时间只有一个业务线程更新缓存,未能获取互斥锁的请求,要么等待锁释放后重新读取缓存,要么就返回空值或者默认值。
  • 不给热点数据设置过期时间,由后台异步更新缓存,或者在热点数据准备要过期前,提前通知后台线程更新缓存以及重新设置过期时间;
相关推荐
惊讶的猫13 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
jiunian_cn14 小时前
【Redis】渐进式遍历
数据库·redis·缓存
jiunian_cn15 小时前
【Redis】数据库管理操作
数据库·redis·缓存
難釋懷16 小时前
秒杀优化-基于阻塞队列实现秒杀优化
redis·缓存
清水白石00816 小时前
深入解析 LRU 缓存:从 `@lru_cache` 到手动实现的完整指南
java·python·spring·缓存
无尽的沉默17 小时前
Redis下载安装
数据库·redis·缓存
yuanmenghao17 小时前
Linux 性能实战 | 第 10 篇 CPU 缓存与内存访问延迟
linux·服务器·缓存·性能优化·自动驾驶·unix
消失的旧时光-194318 小时前
第十六课实战:分布式锁与限流设计 —— 从原理到可跑 Demo
redis·分布式·缓存
时艰.19 小时前
java性能调优 — 高并发缓存一致性
java·开发语言·缓存
JFSJHFZJ19 小时前
清理手机顽固缓存,轻松释放几GB空间
缓存·智能手机