项目中的数据缓存、二级缓存简单说明

下面我从测试角度简单说下Tair缓存、二级缓存和缓存测试点

首先我们要知道程序中为什么要引入缓存机制,在访问量大、对查询速度有一定要求并且数据实时性要求不是特别大时,会考虑引入缓存,提高查询速度、减少数据库链接和访问压力

Tair缓存

说明

为一个中间件,代替数据库做一个临时数据源

tair缓存数据

在增删改操作数据时,数据库数据成功更新后会同步到缓存中,并更新缓存刷新时间字段;定时任务会捞取缓存刷新时间大于指定时间的数据,重新把数据库的数据同步到缓存

对数据的增删改操作后,会同步数据到tair缓存中,保障tair缓存中数据的一致性

定时任务的更新,作为一种补偿机制,保障了异常情况下tair缓存中数据的一致性

最好后台配置可以手动同步、清空tair缓存的功能,方便实时操作

不可避免的风险

刚执行完定时任务,在对数据修改,同步数据到tair缓存时出现异常未能同步成功,此时会有一段时间数据不一致(取决于定时任务间隔时间),待定时任务重新执行后即可恢复

二级缓存

说明

Tair缓存的下一级

二级缓存数据

所有查询都先从二级缓存中查询,二级缓存中如果没有查询到数据,会从tair缓存中拿取数据并更新到二级缓存中,如果tair缓存也不存在时则根据规则制定默认值或者其他处理。二级缓存过期时间一般较短、数据存储量有限制,超出范围对最早数据进行淘汰处理

二级缓存中最开始都是没有数据的,在从tair缓存中查询到数据后才会同步到二级缓存,保证了数据一致性(如果tair缓存中没数据制定了默认值,二级缓存中就存的默认值)

二级缓存过期时间一般较短,可以相对及时从tair缓存中取新数据,保证了数据一致性

不可避免的风险

1.tair缓存中数据是旧数据,二级缓存获取后,此时就会有一段时间数据不一致

2.二级缓存获取数据时,tair服务突然挂了,此时就会有一段时间数据不一致

主要测试点

1.本地缓存中无数据,tair缓存中无数据

2.本地缓存中无数据,tair缓存中有数据

3.本地缓存中有数据

4.本地缓存中有数据,根据业务逻辑筛选数据

5.本地缓存过期、失效、淘汰

6.定时任务、同步数据至tair缓存

7.数据一致性检查

8.超时处理

9.如果存在多条关联数据时,需要关注临界值的情况(如:有三条关联数据,二级缓存大小刚好满了,把前两条数据淘汰了,此时怎么处理)

你可能感兴趣的:(项目中的数据缓存、二级缓存简单说明)