redis之缓存雪崩

一、前言

本次我们讨论缓存雪崩的事情,缓存雪崩也是非常严重的事故,同样会导致数据库被压垮导致应用系统不可用问题,缓存雪崩和缓存击穿类似,缓存击穿是某个热点数据失效导致大量获取该热点数据的请求到达数据库,将数据库压垮,而缓存雪崩是大量的缓存数据失效,将数据库压垮,有点像增强版的缓存击穿。

二、问题分析

1、大量热点数据同时过期

2、由于宕机或者是网络等问题导致缓存不可用。

三、解决方案

1、对于大量热点数据同时过期,有可能是因为设置了相同的过期时间,导致了在同一时间缓存热点数据大量过期,对于这种问题,我们要避免设置相同的过期时间,可以使用随机的方式,给缓存设置随机过期时间,防止在同一时间节点大量缓存过期。

2、对于缓存不可用问题,我们可以从三个方面考虑

2.1、保证redis的可用性,比如说可以搭建主从、哨兵、集群等,提高redis的可用性。

2.2、测试数据库的最大并发处理能力,假如mysql单库并发能力是2000w,超过这个值MySQL就会被压垮,那么我们可以对请求进行限流,一般在开发系统的时候,nginx可以说是标配,我们使用nginx进行先限流,将请求量控制在2000w之内。

2.3、可以使用本地缓存(比如java中的map就可以做缓存,或者还可以使用mamcached),在redis失效时,可以挡一波,有效防止压垮数据库。

四、结语

本期我们简单介绍了一下缓存雪崩的一些知识,大多都是理论方面的知识,涉及到的一些技能点,我们在后续分享到的时候再详细介绍。

相关推荐
全栈老石3 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
曲幽5 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
倔强的石头_1 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏5 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐5 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端