Skip to content

Redis 缓存测试

说明

Redis 测试关注缓存读写、过期策略、数据一致性和缓存失效场景,是高并发业务测试的关键。

面试怎么问

你怎么验证缓存和数据库的一致性?

一致性验证要分场景:读取时验证缓存命中和数据库结果是否一致。更新时验证缓存是否同步更新或失效。删除时验证缓存是否清除。对于延时双删策略,要验证时间窗口内的一致性。还可以监控缓存命中率,异常低可能表示一致性问题。

缓存过期和失效场景怎么测?

测试场景包括:

缓存过期后重新加载。

缓存淘汰策略(LRU/LFU)。

缓存穿透(查询不存在的 key)。

缓存击穿(热点 key 过期瞬间大量请求)。

缓存雪崩(大量 key 同时过期)。

每种场景都要验证系统的行为是否符合预期,是否有兜底机制。

Redis 在你项目里承担什么角色?

Redis 在项目中承担多种角色:

会话存储——验证过期和续期。

缓存层——验证一致性。

分布式锁——验证竞争和超时。

消息队列——验证消费确认。

计数器——验证原子性和准确性。

不同角色的测试重点不同。

项目里怎么用

  • 在接口测试中验证缓存读写结果和过期时间,确保缓存逻辑正确。
  • 覆盖缓存穿透、缓存雪崩和缓存击穿场景,验证兜底机制。
  • 结合数据库变更验证缓存更新和失效逻辑,确保一致性。
  • 测试分布式锁的竞争、超时和释放场景。
  • 验证 Redis 高可用场景(主从切换、哨兵模式)。

容易答错什么

只说会用 Redis,不会讲缓存测试场景

Redis 测试不是简单的读写验证,要覆盖:缓存命中/未命中场景、缓存更新策略、过期和淘汰行为、缓存异常(连接失败、超时)的兜底、并发访问下的正确性。

每种场景都有不同的测试设计,要展示完整的测试思路。

忽略缓存与数据库的一致性验证

缓存一致性问题可能导致严重的数据错误:用户看到过期数据、操作结果丢失。测试要验证:更新操作后缓存是否同步、删除操作后缓存是否清除、异常情况下是否有补偿机制。这是缓存测试的核心价值。

不会讲缓存失效对业务的影响

缓存失效的影响取决于业务场景:热点数据缓存失效可能导致数据库压力骤增。会话缓存失效导致用户登出。分布式锁失效导致并发问题。要分析业务对缓存的依赖程度,设计对应的测试场景和容灾验证。