小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 中间件测试精华文章

    • 中间件测试精华文章
    • 1. Redis 在测试项目中怎么理解
    • 2. 缓存一致性问题怎么测试
    • 3. 缓存穿透击穿雪崩怎么回答
    • 4. MQ 消息队列测试怎么做
    • 5. 消息积压怎么发现和定位
    • 6. 异步链路测试怎么验证结果
    • 7. 重复消费和幂等性怎么测试
    • 8. 延迟消息和定时任务怎么测
    • 9. Redis 和数据库数据不一致怎么排查
    • 10. 中间件面试怎么结合业务场景
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

1. Redis 在测试项目中怎么理解

Redis 是测试项目里非常常见的中间件。很多测试同学知道 Redis 是缓存,但面试时如果只说“Redis 用来提高性能”,回答会比较浅。真实项目中,Redis 不只用于缓存,还常用于验证码、登录态、Token、计数器、限流、分布式锁、排行榜、临时状态、热点数据存储等场景。测试工程师不一定要像后端一样精通 Redis 底层数据结构和持久化机制,但必须知道 Redis 在业务链路中承担什么角色,以及它会带来哪些测试风险。

面试中问“Redis 在测试项目中怎么理解”,面试官通常想看你是否有中间件意识。你要能讲清楚:哪些功能会用 Redis,测试时关注缓存是否命中、过期时间是否正确、缓存和数据库是否一致、删除修改后缓存是否刷新、并发下分布式锁是否有效、Redis 异常时系统是否降级。这样回答才像真实项目经验。

一、Redis 在项目中常见用途

1. 缓存热点数据

比如商品详情、用户信息、首页配置、字典数据、活动信息。这些数据如果每次都查数据库,会增加数据库压力。放到 Redis 后,系统先查缓存,缓存没有再查数据库。

测试关注:缓存是否正确命中,数据库更新后缓存是否刷新。

2. 验证码

短信验证码、图片验证码、邮箱验证码常放 Redis,并设置过期时间。

测试关注:验证码有效期、重复发送、过期后是否失效、错误次数限制。

3. 登录态和 Token

有些系统会把登录 Token、Session 信息、用户权限临时存 Redis。

测试关注:登录后 Token 是否写入,退出登录后是否删除,过期时间是否正确。

4. 计数器和限流

比如短信发送次数、登录错误次数、接口访问频率、活动库存计数。

测试关注:计数是否准确,是否按用户或 IP 维度隔离,过期时间是否合理。

5. 分布式锁

在高并发下防止重复处理,比如防重复下单、库存扣减、定时任务重复执行。

测试关注:并发下是否出现重复提交、超卖、重复消费、锁未释放。

二、Redis 和数据库的关系

Redis 通常不是替代数据库,而是作为缓存或临时状态存储。数据库是最终数据源,Redis 用于提高读取速度或支持临时业务状态。

典型流程:

  1. 用户查询商品详情;
  2. 系统先查 Redis;
  3. Redis 有数据,直接返回;
  4. Redis 没有数据,再查数据库;
  5. 查到后写入 Redis;
  6. 下次请求命中缓存。

测试要关注的是:缓存里的数据是否和数据库一致。如果数据库改了,但 Redis 没刷新,页面可能仍显示旧数据。

三、Redis 测试关注点

1. 缓存命中和未命中

缓存命中时接口响应快;缓存未命中时会查数据库并写入缓存。

测试可以通过日志、响应时间、Redis key、数据库访问情况判断。

2. 过期时间 TTL

Redis key 通常有过期时间。验证码 5 分钟过期,Token 2 小时过期,活动缓存 10 分钟刷新。

测试要验证:

  • 过期前可用;
  • 过期后不可用;
  • 续期逻辑是否正确;
  • 重复生成是否覆盖旧值。

3. 缓存更新

修改数据库后,缓存是否删除或更新。

比如修改商品价格后,如果 Redis 未刷新,商品详情仍显示旧价格。

4. 缓存删除

删除业务数据后,缓存是否清理。

比如删除用户地址后,地址列表缓存没有清,页面仍显示已删除地址。

5. Redis 异常

Redis 不可用时系统怎么表现。核心业务是否降级,还是直接全部不可用。

测试环境可以模拟 Redis 连接失败,但要注意影响范围。

四、项目场景:商品详情缓存

商品详情是典型缓存场景。

测试用例可以设计:

  1. 第一次查询商品,缓存不存在;
  2. 系统查数据库并写入 Redis;
  3. 第二次查询商品,应命中缓存;
  4. 修改商品名称或价格;
  5. 再次查询商品;
  6. 验证页面是否显示最新数据;
  7. 如果仍显示旧数据,说明缓存未刷新。

提 Bug 时可以写:

修改商品价格后,数据库 price 已更新为 99,但商品详情接口仍返回旧价格 89。初步判断 Redis 商品详情缓存未删除或未刷新。

五、项目场景:验证码 Redis 测试

验证码通常写入 Redis,设置过期时间。

测试点:

  • 验证码发送后能使用;
  • 过期后不能使用;
  • 重复发送后旧验证码是否失效;
  • 错误验证码是否拦截;
  • 多次错误是否限制;
  • 不同手机号验证码是否隔离;
  • 验证码使用成功后是否删除。

如果验证码过期时间是 5 分钟,可以验证 4 分 59 秒内可用,5 分钟后失效。

六、项目场景:登录 Token

如果 Token 存 Redis,测试要关注:

  • 登录成功后 Redis 是否写入 Token;
  • Token 是否设置过期时间;
  • 后续接口是否校验 Redis 中 Token;
  • 退出登录后 Redis Token 是否删除;
  • 过期 Token 是否不能继续访问;
  • 多端登录策略是否符合需求。

常见 Bug:退出登录后前端清了 Token,但后端 Redis 中 Token 仍有效,旧 Token 还能访问接口。

七、项目场景:分布式锁

分布式锁常用于防重复提交和并发控制。

比如重复点击创建订单按钮,如果没有锁或幂等控制,可能生成多个订单。

测试方法:

  • 快速重复点击;
  • 使用接口工具并发请求;
  • 自动化脚本模拟并发;
  • 检查数据库是否产生重复数据;
  • 检查库存是否扣减异常;
  • 查看日志是否有加锁、释放锁记录。

要注意锁超时时间。如果业务执行时间超过锁过期时间,可能出现并发问题。

八、Redis 常见问题

1. 缓存和数据库不一致

最常见问题。修改数据库后缓存未更新,用户看到旧数据。

2. 缓存过期时间错误

验证码过期太短或太长,Token 提前失效或长期有效。

3. key 设计不合理

不同用户使用相同 key,导致数据串号。

4. Redis 连接异常

Redis 宕机或网络异常导致接口失败。

5. 并发锁失效

锁未释放、锁过期时间不合理、重复提交仍然成功。

九、面试回答模板

如果面试官问“Redis 在测试项目中怎么理解”,可以这样回答:

我理解 Redis 在项目中不只是缓存,还常用于验证码、登录 Token、计数器、限流和分布式锁。测试时我会关注 Redis 和数据库数据是否一致,缓存过期时间是否正确,新增、修改、删除业务数据后缓存是否刷新,验证码或 Token 过期后是否失效,并发场景下分布式锁是否能防止重复提交。比如商品详情使用 Redis 缓存时,我会测试第一次查询写缓存、再次查询命中缓存、修改商品后缓存是否删除或更新,避免页面显示旧数据。

十、常见追问

追问:怎么测缓存是否更新?

先查询生成缓存,再修改数据库或通过接口修改业务数据,然后再次查询,验证返回是否为最新数据,也可以结合 Redis key、日志和数据库确认。

追问:验证码怎么测?

测发送、正确输入、错误输入、过期、重复发送、不同手机号隔离、使用后失效。

追问:Redis 挂了怎么办?

看业务是否支持降级。非核心缓存可以回源数据库,核心登录态依赖 Redis 时可能导致登录异常。

追问:分布式锁怎么测?

通过并发请求或重复点击验证是否产生重复订单、重复扣库存、重复处理任务。

十一、练习清单

  1. 准备一个商品缓存场景;
  2. 准备一个验证码场景;
  3. 准备一个 Token 过期场景;
  4. 理解 Redis key 和 TTL;
  5. 测缓存命中和未命中;
  6. 测修改后缓存刷新;
  7. 测删除后缓存清理;
  8. 测并发下分布式锁;
  9. 思考 Redis 异常降级;
  10. 准备 Redis 面试回答。

Redis 测试的核心不是会不会操作 Redis 命令,而是能不能围绕缓存一致性、过期时间、登录态、验证码、并发锁和异常降级设计测试场景。

配套刷题:

  • 中间件测试面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
中间件测试精华文章
Next
2. 缓存一致性问题怎么测试