Redis:缓存雪崩

缓存雪崩

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

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

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

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

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

解决方案

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

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

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

    • 构建 Redis 缓存高可靠集群
相关推荐
wudl55665 分钟前
向量数据库--FAISS
数据库·faiss
冲的运维日常9 分钟前
Redis:查看RDB文件内容
数据库·redis·缓存
艾体宝IT11 分钟前
艾体宝干货 | Redis Java 开发系列#1 从零开始的环境搭建与实践指南
数据库
梁bk13 分钟前
Redis网络模型 - 从fd和I/O模型到redis网络模型,再到I/O多线程,7000字长文预警
网络·数据库·redis
w***i29416 分钟前
【SQL】count(1)、count() 与 count(列名) 的区别
数据库·sql
Hui Baby17 分钟前
mysql的自定义HINT语法-实战
数据库·mysql·adb
一 乐28 分钟前
鲜花销售|基于springboot+vue的鲜花销售系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
youmdt29 分钟前
mysql-存储引擎
数据库·mysql
where happens33 分钟前
SQL Server 收缩日志
数据库·sql·oracle
w***i29438 分钟前
SQL Server 创建用户并授权
数据库·oracle