redis之缓存雪崩

一、前言

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

二、问题分析

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

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

三、解决方案

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

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

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

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

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

四、结语

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

相关推荐
TDengine (老段)16 小时前
TDengine 时间函数 WEEKDAY() 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)16 小时前
从 ETL 到 Agentic AI:工业数据管理变革与 TDengine IDMP 的治理之道
数据库·数据仓库·人工智能·物联网·时序数据库·etl·tdengine
LQ深蹲不写BUG18 小时前
MySql的事务机制
数据库·mysql
逼子格18 小时前
【Proteus仿真】定时器控制系列仿真——秒表计数/数码管显示时间
数据库·单片机·嵌入式硬件·51单片机·proteus·定时器·硬件工程师
Armyyyyy丶19 小时前
Redis底层实现原理之五大基础结构
数据结构·redis·缓存
stein_java19 小时前
Mybatis-7 XML映射器
数据库·sql·mybatis
xhbh66620 小时前
开发效率翻倍:资深DBA都在用的MySQL客户端利器
数据库·mysql·数据库连接工具·mysql 连接工具
LJC_Superman20 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim
java水泥工20 小时前
校园管理系统|基于SpringBoot和Vue的校园管理系统(源码+数据库+文档)
数据库·vue.js·spring boot