Redis测试新手入门教程

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

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


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


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


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


2、结合使用


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

3、缓存应用流程

Redis测试新手入门教程_第1张图片

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

1、功能测试的角度

1)小公司无缓存架构

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

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

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

3)最经典场景

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

4)互联网/高并发系统

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

2、性能测试的角度

1)缓存预热

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

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

2)缓存雪崩

举个例子:

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

Redis测试新手入门教程_第2张图片

3)缓存击穿

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

4)缓存穿透

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

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

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

你可能感兴趣的:(Redis,redis,数据库,缓存)