开发者学堂课程【Redis 入门到精通(进阶篇):企业级解决方案-缓存击穿】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/765/detail/13473
企业级解决方案-缓存击穿
内容介绍:
一、数据库服务器崩溃(2)
二、问题排查
三、问题分析
四、解决方案(术)
五、总结
一、数据库服务器崩溃(2)
1.系统平稳运行过程中
2.数据库连接量瞬间激增
3.Redis 服务器无大量 key 过期
4.Redis 内存平稳,无波动
5.Redis 服务器 CPU 正常
6.数据库崩溃
二、问题排查
1.Redis 中某个 key 过期,该 key 访问量巨大
2.多个数据请求从服务器直接压到 Redis 后,均未命中
3.Redis 在短时间内发起了大量对数据库中同一数据的访问
三、问题分析
单个 key 高热
数据 key 过期
四、解决方案(术)
1.预先设定
以电商为例,每个商家根据店铺等级,指定若干款主打商品,在购物节期间,加大此类信息 key 的过期时长
注意:购物节不仅仅指当天,以及后续若干天,访问峰值呈现逐渐降低的趋势
2.现场调整
监控访问量,对自然流量激增的数据延长过期时间或设置为永久性key
3.后台刷新数据
启动定时任务,高峰期来临之前,刷骧新数据有效期,确保不丢失
4.二级缓存
设置不同的失效时间,保障不会被同时淘汰就行
5.加锁
分布式锁。防止被击穿,但是要注意也是性能瓶颈,慎重!
五、总结
缓存击穿就是单个高热数据过期的瞬间,数据访问量较大,未命中 redis 后,发起了大量对同一数据的数据库访问,导致对数据库服务器造成压力。应对策略应该在业务数据分析与预方方面进行,配合运行监控测试与即时调整策略,毕竟单个 key 的过期监控难度较高,配合雪崩处理策略即可。