缓存雪崩、穿透和失效问题
1、缓存雪崩: redis 集群彻底崩溃后,大量请求直接打到 mysql 上面,导致 mysql 也崩溃继而导致源服务乃至整个网站崩溃
解决方案:
事前:发生缓存雪崩之前怎么防止 redis 挂掉
- redis集群部署(冗余slave部署),利用redis本身的主从切换的高可用性
- 双机房部署,一套集群部署在两个机房或两个机房各自部署一套集群
- 三层缓存架构,nginx本地缓存 + redis 集群 + ehcache 本地缓存服务
- 对 redis 集群访问进行资源隔离和提供降级处理,防止大量请求超时缓存服务崩溃
- 对源服务的访问进行限流和资源隔离,防止大量请求涌入源服务导致其挂掉
- 对 redis 做热备和冷备(RDB 和 AOF),快速启动 redis 集群
- 启动时对 redis 做快速预热,防止启动后再次崩溃
解决方案:把查询结果为空的数据也放在 redis 集群 + 缓存服务 + nginx 里面
3、缓存失效:大量缓存设置了同一过期时间失效,导致大量请求突然穿过缓存直接访问后端服务,大量的网络请求导致网络负载加重或者服务挂掉
【缓存雪崩、穿透和失效问题】解决方案:在 nginx 端给缓存设置一定范围内的随机过期时间避免大量缓存数据在同一时间过期
推荐阅读
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- Shell-Bash变量与运算符
- 清明,是追思、是传承、是感恩。
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 七老修复好敏感、角质层薄、红血丝
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 螃蟹和这些食物同吃,轻则腹泻、重则中毒!要小心哦~
- 八、「料理风云」