Redis 缓存测试
说明
Redis 测试关注缓存读写、过期策略、数据一致性和缓存失效场景,是高并发业务测试的关键。
面试怎么问
你怎么验证缓存和数据库的一致性?
一致性验证要分场景:读取时验证缓存命中和数据库结果是否一致。更新时验证缓存是否同步更新或失效。删除时验证缓存是否清除。对于延时双删策略,要验证时间窗口内的一致性。还可以监控缓存命中率,异常低可能表示一致性问题。
缓存过期和失效场景怎么测?
测试场景包括:
缓存过期后重新加载。
缓存淘汰策略(LRU/LFU)。
缓存穿透(查询不存在的 key)。
缓存击穿(热点 key 过期瞬间大量请求)。
缓存雪崩(大量 key 同时过期)。
每种场景都要验证系统的行为是否符合预期,是否有兜底机制。
Redis 在你项目里承担什么角色?
Redis 在项目中承担多种角色:
会话存储——验证过期和续期。
缓存层——验证一致性。
分布式锁——验证竞争和超时。
消息队列——验证消费确认。
计数器——验证原子性和准确性。
不同角色的测试重点不同。
项目里怎么用
- 在接口测试中验证缓存读写结果和过期时间,确保缓存逻辑正确。
- 覆盖缓存穿透、缓存雪崩和缓存击穿场景,验证兜底机制。
- 结合数据库变更验证缓存更新和失效逻辑,确保一致性。
- 测试分布式锁的竞争、超时和释放场景。
- 验证 Redis 高可用场景(主从切换、哨兵模式)。
容易答错什么
只说会用 Redis,不会讲缓存测试场景
Redis 测试不是简单的读写验证,要覆盖:缓存命中/未命中场景、缓存更新策略、过期和淘汰行为、缓存异常(连接失败、超时)的兜底、并发访问下的正确性。
每种场景都有不同的测试设计,要展示完整的测试思路。
忽略缓存与数据库的一致性验证
缓存一致性问题可能导致严重的数据错误:用户看到过期数据、操作结果丢失。测试要验证:更新操作后缓存是否同步、删除操作后缓存是否清除、异常情况下是否有补偿机制。这是缓存测试的核心价值。
不会讲缓存失效对业务的影响
缓存失效的影响取决于业务场景:热点数据缓存失效可能导致数据库压力骤增。会话缓存失效导致用户登出。分布式锁失效导致并发问题。要分析业务对缓存的依赖程度,设计对应的测试场景和容灾验证。