二十三、Redis进阶-企业级解决方案-缓存雪崩

作者: 温新

分类: 【Redis】

阅读: 2065

时间: 2020-09-06 09:26:51

缓存雪崩指在某一个时间段内,缓存集中过期。从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。

缓存雪崩的原因

1)较短时间内,缓存中较多的key集中过期

2)在此周期内,所有的请求都访问过期数据,redis未命中,直接向数据库获取数据

3)数据库无法同时处理大量请求

4)Redis大量请求被积压,开始出现超时现象

5)数据流量激增,数据库崩溃

6)重启后仍旧面对缓存中无数据可用

7)Redis服务器资源被严重占用,Redis服务器崩溃

8)Redis集群崩溃、瓦解

9)应用服务器无法及时处理得到的数据请求,客户端请求越来越多,应用服务器崩溃

10)应用服务器、Redis、数据库重启效果不明显

解决方案

1)将更多的页面进行静态化处理

2)构建多级缓存架构。如Nginx缓存+Redis缓存+echcache缓存

3)对数据库查询进行优化,如超时查询、耗时高的事务等

4)灾难预警机制

监控Redis服务器性能指标

CPU占用、使用率

内容容量

查询平均响应时间

线程数

5)限流、降级

短时间范围内牺牲一些客户体验,限制一部分请求访问,降低应用服务器压力,待业务低速运转后再逐步开放

解决方案

1)数据有效期策略调整

1.1)根据业务数据有效期进行分类错峰,如A类90分钟,B类80分钟,C类70分钟

1.2)过期时间使用固定时间+随机值形式,稀释集中到期key的数量

2)超热数据使用永久key

3)定期维护(自动+人工)

对即将过期的数据做访问量分析,确认是否延时,配置访问量统计,做热点数据延时

此内容来源于网络,没有实际测试。记录下来,需要时方便到自己的博客中查找。

我是小白,期待和优秀的你一起同行!

小白

2020年09月06日

请登录后再评论