在业务在线且不能停机的情况下,处理大量缓存脏数据是一个典型的高可用架构应急场景。直接清空缓存(如 或批量 )会导致缓存雪崩,巨量请求直接打垮数据库(DB)。 为了“平滑清理并恢复一致性”,必须遵循“控制爆炸半径、避免DB击穿、渐进式修复”的原则。以下是标准的操作指南和修复策略: --- 第一阶段:止血与评估(紧急操作) 1. 切断污染源: 立即回滚代码或发布Hotfix,确保新的请求不再产生脏数据。如果污染源不切断,后面的清理毫无意义。 2. 评估影响面: 脏数据的特征是什么?(是有特定的 Key 前缀?还是某个时间段写入的数据?还是全局污染?) 脏数据对业务的影响程度?(是只影响显示,还是会引起资损?) 3. 监控水位: 检查当前 DB 的 CPU、IO负载,以及 Redis 的内存和网络情况,确定接下来修复任务的“可用性能余量”。 --- 第二阶段:选择平滑修复策略 根据脏数据的特征和范围,选择以下三种策略之一: 策略一:缓存 Key 版本升级(适用于全局污染、无法区分脏数据) 如果几乎所有缓存都被污染,或者很难通过规则筛选出脏数据,最好的方式是废弃老缓存,启用新版本缓存。 ...