测试应该知道的知识-Redis

Redis缓存

如果完全没听过缓存这个概念,测试会遇到什么问题呢?

问题场景

懂缓存,但测试过程没用上

  1. 刚新增了一条数据,但是,列表/报表上没有更新数据;
  2. 数据没更新,提交了BUG,被开发打回,说是缓存还没更新;
  3. 执行某条用例,要修改数据,看列表/报表的数据关联变化;
  4. 给带缓存的业务功能模块,实现自动化测试;

痛点

痛点表现
难以定位缺陷1、数据没更新,可能缓存没更新造成
2、数据没更新,可能是功能上的缺陷
测试效率低下1、等待缓存更新时间过长
2、让开发进行Delete/Reload,损耗沟通成本
自动化测试无法覆盖1、缓存导致数据滞后更新
2、sleep时间过长,脚本执行效率低下
缺少缓存的测试覆盖1、缓存的设定是否与实际业务相符
2、缓存专项测试

Redis缓存

Redis 是一个高性能的key-value数据库
读的速度是110000次/s,写的速度是81000次/s
还提供list、set、zset、hash等结构存储
RedisDesktopManager在这里插入图片描述

常为了降低数据库查询压力,而设计的Redis

在这里插入图片描述
数据库无法随时提供数据,或性能耗损极大

常为了减轻数据库写入压力,而设计的Redis,如浏览量

常为了减轻数据库写入压力,而设计的Redis,如浏览量。

步入正题

前置条件:

  • 确定指定模块是用了Redis缓存
  • 确定用了哪种缓存交互方式
  • 拿到Redis的服务器地址
  • 知道该模块存储在哪里/Key的值
    在这里插入图片描述

连接Redis

在这里插入图片描述
找到功能模块的文件夹
把接口和缓存的KEY对应上

GET key
DEL key
EXISTS key
SET key value
TTL key
EXPIRE key seconds
LINDEX key index

终于解决了等待、沟通以及无法定位的问题
在这里插入图片描述
缓存击穿

  • 是指查询一个一定不存在的数据,但是数据库没有把空值存到Redis上
  • 应对方法:制造查询结果为空的方法,结合场景去测试,如果返回值为空存到了Redis,那么这个TTL不能太长,最长不能超过五分钟;

缓存雪崩

  • 缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上
  • 应对措施:同一个页面的缓存不建议同一时间过期
  • 利用该特性,可以给到服务器最真实的压力峰值
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值