JAVA全系列 教程
3762个小节阅读:7089.7k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
缓存雪崩是指在某一时刻,大量缓存突然失效,请求全部转发到数据库,数据库瞬时压力过大导致崩溃。缓存雪崩的产生原因一般有两种:
缓存中大量的数据同时过期。在某一时刻,大量的缓存同时过期,此时如果有请求访问这些数据的话,缓存不存在,会将请求转移到数据库,如果这些的请求量比较大的,导致数据库的压力增大,严重会导致数据库崩溃。此时解决方案一般有以下几种:
设置缓存不过期。我们项目中的秒杀商品数据没有设置过期时间,所以不会出现缓存中大量的数据同时过期的问题。
过期时间设置随机值。为了避免给数据设置相同的过期时间,在设置过期时间时,可以增加一点随机值。
xxxxxxxxxx
redisTemplate.opsForValue().set(key,value,time+Math.random()*10000);
Redis服务挂掉了。即Redis服务发生宕机,无法处理请求,这就会导致全部转移到数据库去,发生雪崩。此时的解决方案一般有以下几种:
为了防止缓存雪崩以及访问量过大时对系统的冲击,我们引入分布式流量防护工具——Sentinel保护我们的系统。