Redis:缓存雪崩

缓存雪崩

​ 缓存雪崩是指当缓存中有大量的key在同一时刻过期,或者Redis直接宕机了,导致大量的查询请求全部到达数据库,造成数据库查询压力骤增,甚至直接挂掉。

​ 和缓存击穿不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。

*** 现象 ** :数据库的访问压力瞬间激增,服务负载过高

产生雪崩的原因大致有两种

  • 缓存系统不可用
  • 大量的key在同一时间失效,导致大量数据回源

解决方案

  • 1、差异化缓存过期时间

    • 避免缓存设置相近的有效期,我们可以在设置有效期时增加随机值;
  • 2、缓存永不过期,后台线程刷新

    • 初始化缓存数据的时候设置缓存永不过期,然后启动一个后台线程 30 秒一次定时把所有数据更新到缓存,而且通过适当的休眠,控制从数据库更新数据的频率,降低数据库压力
  • 3、增强redis的高可用性

    • 构建 Redis 缓存高可靠集群
相关推荐
Leiwenti9 分钟前
MySQL高阶篇-数据库优化
数据结构·数据库·mysql
你的电影很有趣9 分钟前
lesson44:Redis 数据库全解析:从数据类型到高级应用
数据库·redis·缓存
NineData14 分钟前
2025 DTCC大会来了,NineData联合创始人周振兴将分享《AI重塑数据库管理模式》的主题演讲
数据库
NineData21 分钟前
NineData亮相2025中国数据库技术大会,并荣获《年度优秀技术团队奖》
数据库
kunwen1231 小时前
推理还是训练 || KV缓存和CoT技术
缓存·kv缓存·cot技术
蓝色天空的银码星1 小时前
Spring循环依赖源码调试详解,用两级缓存代替三级缓存
java·spring·缓存
码农阿豪1 小时前
KingbaseES数据库增删改查操作分享
数据库·oracle
言之。1 小时前
Django REST框架核心:GenericAPIView详解
数据库·python·django
DemonAvenger2 小时前
MySQL存储引擎深度对比:InnoDB vs MyISAM及其应用场景解析
数据库·mysql·性能优化
helloyaren2 小时前
Docker Desktop里搭建Redis 8.2.1集群的保姆级教程
redis·学习·集群·cluster