缓存--测试

1、缓存的介绍

平时用的Redis缓存是一款高性能的内存型键值对(key-value)数据库,是高并发场景常用一款存储中间件,其主要用于:缓存热点数据,减少DB的请求IO;

其场景使用主要有:分布式锁,全局ID,计数器,限流,消息队列,购物车等

2、缓存的使用

在这里插入图片描述
PS: 部分场景可能存在查询缓存时,如缓存无数据,可能会直接返回空数据给客户端,不再去查询DB;
3、缓存的设计
在这里插入图片描述
4、缓存的测试

PS: 缓存的测试可从四个唯度进行测试:
在这里插入图片描述
使用场景评审

1 缓存使用场景的评审:

评估业务场景是否真的需要缓存;
2 评估缓存 与 DB 短期的数据短期暂不致对业务带来的影响;

3 键值规范设计是否合理:

请考 缓存设计 KEY-VALU的规范
4 业务场景中缓存模式的选择:

参考 缓存模式的选择

5 缓存的更新策略:

是否存在并发场景,是否在并发场景下出现脏数据的读
参考缓存的更新策略,一般推荐先更新DB,再淘汰缓存
6 业务使用的空间大小是否在最近的增长时有内存不够风险:

7 评估缓存时间设置的合理性;

缓存的功能测试
在这里插入图片描述
缓存的特殊场景

1 缓存超时:

验证缓存查询达到超时后,未返回指定的数据,对系统的影响;强弱依赖

2 缓存穿透

不断查询一个DB和缓存中一定不存在的数据,验证返回数据为空;

3 缓存雪崩:

验证缓存 是否采用了相同的过期时间,如果缓存 大量在同一时间失效,验证系统功能是否正常,DB的IO读取是否正常,其系统中DB性能指标是否正常;

4 缓存击穿:

缓存中的数据没有查询过,第一次高并发访问

缓存中的一条数据刚好失效,进行高并发访问 ,校验功能是否正常,DB指标是否正常,其对应的性能指标是否正常;

5 缓存预热:

大批量缓存在同一时间点过期,验证缓存预热耗时及预期时机

在缓存预期期间请求 更新接口和查询接口,验证返回数据的正确性

6 缓存内存上限:

验证缓存淘汰参数配置与预期是否一致:增加缓存到达最大内存限制时(通过修改redis.conf配置文件中配置最大可用内存值maxmemory),再次请求查询 ,数据返回是否正确,且缓存淘汰是否正确

7 缓存服务异常

验证关闭缓存服务,系统功能和性能的表现

重启缓存,请求查询数据是否正确,DB数据与Redis数据是否一致;

6 读写并发测试:

并发请求缓存中的有的数据,验证返回数据是否正确,性能指标是否正常

并发请求缓存中没有但DB有的数据,验证返回数据是否正确,性能指标是否正常

并发请求缓存中和DB中也没有的数据,验证返回数据是否为空,性能指标是否正常;

7 性能测试(redis-benchmark):

单机和集群Reids的吞吐量

对比不同存储类型的性

开启和关闭持久化的吞吐量

对比调优前后的吞吐量

对比不同版本的Redis的吞吐量

缓存 的监控

缓存的命中率,评估缓存设计 是否达到预期

监控CPU,内存使用率,及 CPU,内存使用异常

监控Key值过大的阀值

监控KEY是否存在频繁更新场景

监控Value读取时间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值