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

什么是雪崩?

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


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


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

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

雪崩造成的影响:

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

如何预防和解决?

  1. 可以通过随机数设置不同的失效时间
  2. 定期备份数据进行持久化操作
  3. 通过加锁控制访问的数量
相关推荐
江晓鱼未暖5 小时前
十七、Redis 核心原理与架构详解
大数据·数据库·数据仓库·redis·缓存·架构
小罗水5 小时前
第13章 Redis 缓存、幂等锁与任务状态
数据库·redis·缓存
热心市民lcj5 小时前
Spring Boot 整合 Caffeine 本地缓存实战
spring boot·后端·缓存
zzzll11115 小时前
Spring Cloud 微服务:从入门到实践
spring·spring cloud·微服务
zx1154507 小时前
【热点 Key 探测与加长缓存 TTL 实战】
缓存
Devin~Y7 小时前
从本地生活电商到 AI RAG:互联网大厂 Java 面试场景完整实战
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
都叫我大帅哥18 小时前
Spring Data JPA 查询之道:方法命名与示例查询完全指南
java·后端·spring
重庆小透明19 小时前
带你从不同视角了解三大MQ
java·学习·spring·kafka·rabbitmq·rocketmq
toooooop820 小时前
如何用 ss + ps 精准定位本机 Redis 的“隐形”消费者?
linux·数据库·redis·缓存
软萌萌的120 小时前
C#中的多级缓存架构设计与实现深度解析
缓存·c#·wpf