redis之缓存雪崩

一、前言

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

二、问题分析

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

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

三、解决方案

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

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

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

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

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

四、结语

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

相关推荐
潘yi.2 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
zdkdchao2 小时前
hbase资源和数据权限控制
大数据·数据库·hbase
伤不起bb2 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
leo__5202 小时前
PostgreSQL配置文件修改及启用方法
数据库·postgresql
半桔3 小时前
【Linux手册】冯诺依曼体系结构
linux·缓存·职场和发展·系统架构
14L3 小时前
互联网大厂Java面试:从Spring Cloud到Kafka的技术考察
spring boot·redis·spring cloud·kafka·jwt·oauth2·java面试
一个有女朋友的程序员3 小时前
Spring Boot 缓存注解详解:@Cacheable、@CachePut、@CacheEvict(超详细实战版)
spring boot·redis·缓存
南風_入弦4 小时前
优化09-表连接
数据库·oracle
Snk0xHeart4 小时前
极客大挑战 2019 EasySQL 1(万能账号密码,SQL注入,HackBar)
数据库·sql·网络安全
yuren_xia5 小时前
在Spring Boot中集成Redis进行缓存
spring boot·redis·缓存