redis常见问题和解决方案 预热问题 在启动redis的时候,因为热点数据未加载,导致服务器压力大,cpu增高,甚至崩溃 问题解析 缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统,毕淼在用户请求的时候,先查询数据库,再将数据缓存的问题,用户直接查询事先被预热的缓存数据 解决方案 前置准备工作 日常例行统计数据访问记录,统计访问频度较高的热点数据 利用LRU数据删除策略,构件数据留存队列 准备工作 将统计结果中的数据分类,根据级别,redis优先加载级别较高的热点数据 利用分布式多服务器同时进行数据读取,提速数据加载过程 实施 使用脚本程序固定触发数据预热过程 如果条件允许,使用CDN,效果会更好 雪崩 问题排查 在一个较短的时间内,缓存中较多的key集中过期 这周期内,请求访问过期的数据,redis未命中,redis向数据库获取数据 数据库同时接受到大量的请求,无法及时处理 redis大量请求被积压.开始出现超时现象 数据库流程激增,数据库崩溃 重启后仍然面对缓存中无数据可用 reids服务器资源被严重占用,redis服务器崩溃 应用服务器无法及时得到数据响应请求,来自客户端的请求数量越来越多,应用服务器崩溃 应用服务器,redis,数据库全部重启,效果不理想 问题分析 短时间范围内 大量key集中过期 解决方案(外部优化) 更多页面静态化处理 构件多级缓存结构