redis的缓存雪崩如何解决和预防

什么是雪崩?

首先redis的作用就是在数据访问层在访问数据库的时候,通过一种缓存的手段,去实现通过内存读取数据,在请求数据的时候,首先会在redis中查找,如果redis没有再去数据库中查找,再将查到的数据返回并保存在redis中,之后的查询都会从redis中查


而雪崩就是说如果redis中的数据消失,导致同一时间有一堆请求同时进入数据库,导致数据库崩溃


造成雪崩的常见的场景有:

  1. 当redis的key同时失效,导致请求全部涌入数据库。
  2. redis服务重启导致所有数据丢失。
  3. redsis很稳定,但是如果外在因素导致redis服务关闭,那么也会导致雪崩
  4. 常用的key突然被删除或者失效

雪崩造成的影响:

  1. redis响应是十分快的,当redis出现雪崩会导致所有请求都进入数据库,导致数据库卡顿,本来几毫秒一瞬间就能完成的事情,现在需要几秒甚至更久,体验感非常差
  2. 数据库本来靠着缓存作为缓冲区,如果这个缓存区突然失效,就会导致所有的请求全部涌入数据库,就和三峡大坝一样,靠着三峡大坝来缓冲,拦截水流,如果三峡大坝出现问题,那么可能会导致所有的水,直接将我们淹没

如何预防和解决?

  1. 可以通过随机数设置不同的失效时间
  2. 定期备份数据进行持久化操作
  3. 通过加锁控制访问的数量
相关推荐
IT大白鼠3 天前
Redis 系列 · 第 01 篇——认知入门:Redis 是什么
redis·nosql
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
Bingo_BIG3 天前
Java Spring框架:单表的查询、新增、修改、删除、导入、导出
java·spring·前后端
全栈弄潮儿²⁰²⁴3 天前
AI Agent 开发实战(30):限流、缓存与成本控制
人工智能·gpt·缓存·agent·限流·agi·成本控制
lbb 小魔仙3 天前
OpenClaw + cpolar 实战:远程 NAS、分享小游戏、RDP,再配置公网 AI 入口
数据库·人工智能·redis·oracle·prometheus
paopaokaka_luck3 天前
智慧社区综合服务小程序(人脸识别、AI问答、Echarts图形化分析)
前端·javascript·spring boot·spring·数据分析·echarts
牧瀬クリスだ3 天前
YAML配置详解:SpringBoot实战指南
java·spring·yml
需要8263 天前
JVM 内存区域与对象创建:一次 GC 从哪来
java·jvm·spring boot·spring·servlet·tomcat
夕除3 天前
redis--018
redis
两锭子3 天前
Redis基础
redis