hxz
发布于 2023-05-13 / 68 阅读
0

redis缓存测试策略

1. Redis缓存是什么:

一、Redis是一个非关系型数据库,同时也是一个高性能的键值存储系统,常用于缓存数据。

二、存储键值对。支持多种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合)

Redis用途

2. 为什么要使用Redis缓存:

一、高性能:Redis是一个内存数据库,数据存储在内存中,因此读写速度非常快。

二、减少数据库压力:Redis一般搭配MYSQL使用,通过将热点数据缓存在Redis中,可以减少对后端数据库的直接访问,从而降低数据库的压力,提高整体系统的性能。

三、实现数据的淘汰机制:Redis的数据淘汰机制是为了确保在内存资源有限的情况下,能够有效地管理和释放不再需要的数据。

3. 如何测试Redis缓存:

普通场景:

一、缓存增加:

①通过业务接口生成新的缓存数据,再通过redis的get方法或者业务查询接口查询数据是否正确,缓存过期时间与设计是否一致。

二、缓存更新:

①前置存在缓存数据时,通过服务提供的所有更新数据的接口对数据进行更新,再通过查询接口校验结果是否是更新后的结果。

②对同一条数据并发执行读取和更新操作,校验功能和数据是否正确,MYSQL和redis数据是否一致,要考虑数据一致性问题。

三、缓存删除:

①直接删除,查询接口查不到数据。

四、缓存过期:

①设置 Redis 过期时间,校验缓存是否正常过期失效。

②再次写入缓存,缓存过期时间被更新。

③自定义的淘汰机制,校验机制是否符合业务预期。

五、缓存读取:

①校验数据在redis和MySQL中都存在时,系统功能是否正常,通过外部的查询接口校验,校验结果输出满足期望。

②校验数据在redis和 MySQL 中都不存在时,系统功能是否正常,通过外部的查询接口校验,校验结果输出满足期望。

③校验数据在 MySQL 存在,但redis中不存在时,系统功能是否正常,通过外部的查询接口校验,校验结果输出满足期望。

④校验数据在 MySQL 不存在,但redis中存在时,系统功能是否正常,通过外部的查询接口校验,校验结果输出满足期望。

特殊场景:

缓存异常场景

一、并发请求Redis中有的数据,校验返回数据是否正确,各项性能指标是否正常。

二、缓存击穿:并发请求Redis中没有,MYSQL中有的数据,校验返回数据是否正确,各项性能指标是否正常。

三、缓存穿透:并发请求Redis中没有,MYSQL中也没有的数据,校验返回数据是否为空,各项性能指标是否正常。

四、缓存雪崩:

校验缓存是否采用了相同的过期时间。如果缓存大批量同时失效,验证系统功能是否正常性能指标是否正常。