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

什么是雪崩?

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


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


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

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

雪崩造成的影响:

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

如何预防和解决?

  1. 可以通过随机数设置不同的失效时间
  2. 定期备份数据进行持久化操作
  3. 通过加锁控制访问的数量
相关推荐
笛卡尔的心跳13 分钟前
Spring MVC 注解
java·spring·mvc
rleS IONS19 分钟前
Redis五种用途
数据库·redis·缓存
Kiyra19 分钟前
为什么远程调用别包进 Spring 事务里
java·后端·spring
快乐非自愿24 分钟前
SpringAI入门指南
大数据·人工智能·spring
空中海1 小时前
Redis 原理深度解析:持久化 × 主从复制 × Sentinel × Cluster × 性能排查全攻略
数据库·redis·sentinel
China_Yanhy1 小时前
[Infra/SRE 知识库] AWS CloudFront API 边缘缓存配置与排障复盘
缓存·云计算·aws
YQ_011 小时前
大幅提速 colcon build —— ccache 缓存 + 并行数控制防爆内存
linux·缓存·机器人·ros2
MY_TEUCK1 小时前
【Redis 高级实战】分布式缓存、 多级缓存与最佳实践一篇打通
redis·分布式·缓存
weiwen14081 小时前
快递100 API 工具类封装实践:签名、请求与缓存防锁单
spring boot·spring·缓存
難釋懷1 小时前
Redis服务器端优化-持久化配置
数据库·redis·bootstrap