《弟哥带你学Redis系列》 - 第十章 Redis企业级解决方案篇

84 阅读2分钟

缓存预热

现象: 服务器启动后快速宕机

原因:

  1. 请求数量较高
  2. 主从之间数据吞吐量较大,数据同步操作频度较高

解决:

前置准备工作:

1.日常例行统计数据访问记录,统计访问频度较高的热点数据

2.利用LRU数据删除策略,构建数据留存队列。例如: storm与kafka配合

准备工作:

3.将统计结果中的数据分类,根据级别,redis优先加载级别较高的热点数据

4.利用分布式多服务器同时进行数据读取,提速数据加载过程

实施:

1.使用脚本程序固定触发数据预热过程

2.如果条件允许,使用了CDN(内容分发网络),效果会更好

总结

缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!

缓存雪崩

现象:

1.系统平稳运行过程中,忽然数据库连接量激增

2.应用服务器无法及时处理请求

3.大量408,500错误页面出现

4.客户反复刷新页面获取数据

5.数据库崩溃

6.应用服务器崩溃

7.重启应用服务器无效

  1. Redis服务器崩溃

  2. Redis集群崩溃

10.重启数据库后再次被瞬间流量放倒

原因:

1.在一个较短的时间内,缓存中较多的key集中过期

2.此周期内请求访问过期的数据,redis未命中,redis向数据库获取数据

3.数据库同时接收到大量的请求无法及时处理

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

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

6.重启后仍然面对缓存中无数据可用

  1. Redis服务器资源被严重占用,Redis服务器崩溃

  2. Redis集群呈现崩塌,集群瓦解

9.应用服务器无法及时得到数据响应请求,来自客户端的请求数量越来越多,应用服务器崩溃

10.应用服务器,redis,数据库全部重启,效果不理想

解决:

缓存击穿

现象:

原因:

解决:

总结:

缓存穿透

现象:

原因:

分析:

解决:

总结: