缓存篇—缓存击穿

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

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

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

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

  • 互斥锁方案,保证同一时间只有一个业务线程更新缓存,未能获取互斥锁的请求,要么等待锁释放后重新读取缓存,要么就返回空值或者默认值。
  • 不给热点数据设置过期时间,由后台异步更新缓存,或者在热点数据准备要过期前,提前通知后台线程更新缓存以及重新设置过期时间;
相关推荐
MarkHard1231 天前
如何利用redis使用一个滑动窗口限流
数据库·redis·缓存
心想事成的幸运大王1 天前
Redis的过期策略
数据库·redis·缓存
wuyunhang1234561 天前
Redis---集群模式
数据库·redis·缓存
没有bug.的程序员1 天前
Redis 大 Key 与热 Key:生产环境的风险与解决方案
java·数据库·redis·缓存·热key·大key
wuyunhang1234561 天前
Redis----缓存策略和注意事项
redis·缓存·mybatis
零雲2 天前
除了缓存,我们还可以用redis做什么?
数据库·redis·缓存
梦中的天之酒壶2 天前
多级缓存架构
缓存·架构
We....2 天前
Java 分布式缓存实现:结合 RMI 与本地文件缓存
java·分布式·缓存
森林-2 天前
MyBatis 从入门到精通(第三篇)—— 动态 SQL、关联查询与查询缓存
sql·缓存·mybatis
虫小宝2 天前
返利软件的分布式缓存架构:Redis集群在高并发场景下的优化策略
分布式·缓存·架构