redis之缓存雪崩

一、前言

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

二、问题分析

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

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

三、解决方案

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

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

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

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

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

四、结语

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

相关推荐
陆少枫1 小时前
MySQL基础关键_004_DQL(三)
数据库·mysql
焱焱枫2 小时前
Oracle 数据布局探秘:段与区块的内部机制
数据库·oracle
焱焱枫3 小时前
深入理解 Oracle 数据块:行迁移与行链接的性能影响
数据库·oracle
长流小哥3 小时前
MySQL零基础入门:Ubuntu环境安装与操作精解
数据库·sql
临界点oc4 小时前
Redis从入门到实战 - 高级篇(上)
数据库·redis·缓存
电商数据girl7 小时前
【Python爬虫电商数据采集+数据分析】采集电商平台数据信息,并做可视化演示
java·开发语言·数据库·爬虫·python·数据分析
杨云龙UP8 小时前
SQL 中的中括号 [ ]、双引号 “ “、反引号 ` `:SQL Server、Oracle、MySQL三大数据库标识符 定界符 详解
数据库·sql·mysql·postgresql·oracle·sqlserver
小马爱打代码8 小时前
Nginx+Lua+Redis实现灰度发布
redis·nginx·lua
qqxhb8 小时前
零基础学Java——第九章:数据库编程(三)
java·数据库·spring·mybatis
dancing9999 小时前
linux下的Redis的编译安装与配置
linux·运维·redis