图7 在“里面”缓存
4、缓存的更新方式
说完生成,再来说说缓存的更新。缓存在生成之后,正常都不会一成不变,所以需要对缓存进行更新。
有几种更新方式:
- 过期后自动更新:这是最懒的更新方式。通过设置缓存有效期,让缓存失效后通过新的请求自动创建新的缓存。
- 删除缓存:在更新db数据后,直接删除缓存,通过新的请求自动创建新的缓存。
- 重新设置缓存:在更新db数据后,直接重新设置缓存。
5、redis缓存测试点
1、性能测试角度
缓存增加/更新功能是否正确,查看缓存数据是否正确
- 增加相关日志,查看日志
- 后门接口工具
- 使用命令行,memcached和reids可以登录后,直接查看
缓存删除
- 缓存有效,验证相关业务功能
- 缓存被删除,验证相关业务功能
- 缓存过期失效,memcached 和 redis 可以设置失效时间,查看失效事件有没有,对不对
超量淘汰机制:缓存达到上限怎么处理
- 缓存穿透
- 缓存雪崩
- redis缓存服务停掉
- 缓存超时
- 缓存数据被误修改后,快速恢复到指定版本
- 缓存数据被误删除后,快速恢复数据
了解缓存穿透、缓存雪崩、缓存击穿,参见文章《测试工程师都能看懂的Redis》
2、Redis功能测试角度
- redis数据生效时,读取是否正确
- redis数据不存在,能否正常从db中读取到正确的值,并正确写入Redis和返回给上层
- 数据在redis和db中都不存在时的表现是否正常
- 删除数据时,redis和db的数据是否一致