当前位置: 首页 > news >正文

Redis测试新手入门教程

在测试过程中,我们或多或少会接触到Redis,今天就把在小破站看到的三丰老师课程,把笔记整理了下,用来备忘,也希望能给大家带来亿点点收获。

主要分为两个部分:
一、缓存技术在后端架构中是如何应用的?
二、缓存应用测试中有哪些注意事项?


一、缓存技术在后端架构中是如何应用的?


1、数据并非只能使用一种方式存储


出于持久化考虑,数据会保存一份在关系型数据库(事务)
出于高性能考虑,数据还会存储一份在Redis这种内存型数据库中


2、结合使用


Redis--主要用内存存储
Mysql--主要用磁盘存储

3、缓存应用流程

二、缓存应用测试中有哪些注意事项?

1、功能测试的角度

1)小公司无缓存架构

  1. 测试修改功能的时候,检查数据库内容是否变更即可
  2. 有时候图方便,直接改数据库,而不是通过界面进行修改

2)数据库和缓存数据不一致

  1. 数据修改之后
  2. 后台开发容易犯的错误:数据更新后极度容易导致,数据库和缓存数据不一致
  3. 不能仅仅关注数据库的内容,还要检查缓存数据是否一致

3)最经典场景

  • 不懂缓存的软件测试
  • 可能就是缓存更新导致的,因为有些开发用了异步更新缓存,数据库修改之后,过了一段时间程序异步去同步数据到Redis
  • 而且Bug无法重现
  • 有些Bug,你测试的时候有,然后开发已测试说没有了

4)互联网/高并发系统

  • 修改完毕,要检查数据库+缓存内容

2、性能测试的角度

1)缓存预热

缓存预热是指系统上线后,提前将相关的缓存数据加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题,用户直接查询事先被预热的缓存数据。

如果不进行预热,那么Redis初始状态数据为空,系统上线初期,对于高并发的流量,都会访问到数据库中, 对数据库造成流量的压力。

2)缓存雪崩

举个例子:

例如数据库的性能是2w/s,Redis缓存的性能是12w/s,由于运维重启机器等原因,Redis的缓存突然全部失效了,这个时候如果有12w的用户向服务器请求,那么这个时候数据库是扛不住的,这就是所谓的数据库雪崩。

3)缓存击穿

缓存击穿跟缓存雪崩有点类似,缓存雪崩是大规模的key失效,而缓存击穿是某个热点的key失效,大并发集中对其进行请求,就会造成大量请求读缓存没读到数据,从而导致高并发访问数据库,引起数据库压力剧增。这种现象就叫做缓存击穿。

4)缓存穿透

不断查询一个 DB 和缓存中一定不存在的数据,这通常是由于恶意查询、非法请求或系统故障引起的。

5)性能测试中以上场景会导致系统崩溃

今天的分享就到这里,下期见~

http://www.lryc.cn/news/213852.html

相关文章:

  • Linux内核是如何创建进程?
  • IDEA 使用技巧
  • 安防监控项目---web网页通过A9控制Zigbee终端节点的风扇
  • Ubuntu 22.04 在登录界面循环
  • 【C++ 系列文章 -- 程序员考试 201805 下午场 C++ 专题 】
  • Python如何使用datetime模块进行日期和时间的操作
  • flutter之bloc使用详解
  • 记一次 .NET 某工厂无人车调度系统 线程爆高分析
  • 高等数学啃书汇总重难点(九)多元函数微分法及其应用
  • Vue3前端100个必要的知识点
  • CCS3列表和超链接样式
  • vue手机项目如何控制蓝牙连接
  • 遥遥领先,免费开源的django4-vue3项目
  • 视频平台跨网级联视频压缩解决方案
  • 利用python进行数据分析 pdf
  • Day46.算法训练
  • 基于YOLOv8模型暗夜下人脸目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 如何在 Photoshop 中使用位图模式制作自定义音乐海报
  • 1 — NLP 的文本预处理技术
  • TypeScript之泛型
  • 一个小妙招从Prompt菜鸟秒变专家!加州大学提出PromptAgent,帮你高效使用ChatGPT!
  • Netty通信框架
  • 6西格玛质量标准: 提升业务效率的关键
  • OpenGL ES相关库加载3D 车辆模型
  • 云原生环境下JAVA应用容器JVM内存如何配置?—— 筑梦之路
  • 防雷接地测试方法完整方案
  • 【云原生-K8s】Kubernetes安全组件CIS基准kube-beach安装及使用
  • 玩家必备,2款顶级游戏录屏软件!
  • 七、W5100S/W5500+RP2040树莓派Pico<UDP 组播>
  • Wonder3D:用单张图片生成纹理网格