2. 缓存基础原理:核心概念与灾备巡检视角

在灾备缓存巡检与 NetPolicy 准入核验场景中,缓存系统的稳定性直接决定业务连续性。本节从四个核心指标与异常现象入手,建立缓存健康度的量化评估基础。

2.1 缓存命中率(Cache Hit Ratio)

缓存命中率是衡量缓存效率的首要指标,定义为从缓存成功获取数据的请求占总请求的比例。

指标 公式 健康阈值(灾备场景) 巡检关注点
命中率 Hit / (Hit + Miss) × 100% ≥ 90% 突降 > 10% 需告警
未命中率 Miss / (Hit + Miss) × 100% ≤ 10% 持续上升可能预示缓存污染或容量不足
灾备巡检要点: 当 NetPolicy 准入策略变更后,缓存命中率若在 5 分钟内下降超过 15%,应立即触发缓存预热流程,防止后端数据库被突发流量压垮。

2.2 缓存穿透(Cache Penetration)

缓存穿透指查询一个根本不存在的数据,缓存层无法命中,请求直接穿透到后端存储。大量此类请求会导致数据库压力剧增,甚至引发级联故障。

  • 典型场景: 攻击者构造大量不存在的 Key(如随机用户 ID)发起请求。
  • 灾备影响: 数据库连接池耗尽,主从复制延迟增大。
  • 巡检检测: 监控缓存 Miss 率与数据库 QPS 的比值,若 Miss 率 > 30% 且数据库 QPS 同步飙升,则判定为穿透。
NetPolicy 联动: 在准入核验阶段,对来源 IP 的请求 Key 分布进行熵值分析,若 Key 空间呈现均匀随机分布(非业务规律),可提前阻断恶意穿透流量。

2.3 缓存雪崩(Cache Avalanche)

缓存雪崩指大量缓存 Key 在同一时间过期失效,或缓存节点整体宕机,导致所有请求瞬间涌入数据库。

触发原因 灾备表现 巡检指标
大量 Key 统一过期时间 数据库连接数瞬间打满 过期 Key 数量时间序列
缓存集群节点宕机 缓存命中率断崖式归零 节点存活状态 + 命中率
网络分区导致缓存不可达 请求超时堆积 TCP 重传率 + 响应延迟
巡检红线: 缓存雪崩恢复后,必须执行“缓启动”策略——逐步放量恢复缓存预热,禁止一次性全量回填,否则极易引发二次雪崩。

2.4 缓存击穿(Cache Breakdown / Hotkey Invalid)

缓存击穿特指一个热点 Key 在失效的瞬间,大量并发请求同时访问该 Key,导致这些请求全部穿透到数据库。

  • 与雪崩区别: 雪崩是大量 Key 失效,击穿是单个热点 Key 失效。
  • 典型场景: 秒杀商品详情、热搜榜单、全局配置项。
  • 灾备巡检手段:
    1. 识别热点 Key(访问频率 > 1000 QPS 的 Key)。
    2. 监控热点 Key 的 TTL 剩余时间。
    3. 设置互斥锁(Mutex)或逻辑过期时间。
// 伪代码:互斥锁防止缓存击穿
public String getWithMutex(String key) {
    String value = cache.get(key);
    if (value == null) {
        // 尝试获取分布式锁
        if (redis.setnx("lock:" + key, "1", 3, TimeUnit.SECONDS)) {
            value = db.query(key);
            cache.set(key, value, 60, TimeUnit.SECONDS);
            redis.del("lock:" + key);
        } else {
            // 等待 50ms 后重试
            Thread.sleep(50);
            return getWithMutex(key);
        }
    }
    return value;
}

2.5 四类异常对比总览

异常类型 失效范围 失效原因 数据库压力特征 NetPolicy 可检测特征
缓存穿透 单个不存在 Key 查询不存在数据 持续均匀压力 Key 空间熵值异常高
缓存雪崩 大量 Key 同时失效 统一过期时间 / 节点宕机 瞬间洪峰压力 命中率断崖 + 连接数暴涨
缓存击穿 单个热点 Key 热点 Key 过期 单 Key 并发穿透 特定 Key 请求频率突变
缓存命中率下降 全局或分片 容量不足 / 数据淘汰 渐进式压力上升 逐出(Eviction)计数增长

2.6 缓存异常链路与巡检介入点

缓存异常链路与巡检介入点 客户端请求 缓存层(Redis) 后端数据库 穿透/击穿/雪崩 巡检点①:命中率监控 巡检点②:热点Key识别 巡检点③:数据库连接数 NetPolicy 准入核验层 Key 空间熵值分析 | 请求频率基线 | 来源 IP 信誉 动作输出:缓存预热 / 限流 / 熔断 基于巡检结果自动触发灾备策略 异常流量路径 巡检数据流