测试方法:查询一个根本不存在的数据,缓存层和存储层都不会命中。
查询接口相关代码实现:
通过 JMETER 模拟多次重复调用:单线程重复调用
查看日志结果:从日志可以看出:执行并发请求后, 所有请求每次都走向了数据库。
预防方案:
当数据库查询为空时,将缓存赋值默认值,后续查询都走缓存,减少数据库压力。
上述接口,增加赋值为 empty,则第一次查询到数据库为空,后续查询都查询到缓存中,缓存值为 empty。
再次执行并发测试
测试方法:查询一个根本不存在的数据,缓存层和存储层都不会命中。
查询接口相关代码实现:
通过 JMETER 模拟多次重复调用:单线程重复调用
查看日志结果:从日志可以看出:执行并发请求后, 所有请求每次都走向了数据库。
预防方案:
当数据库查询为空时,将缓存赋值默认值,后续查询都走缓存,减少数据库压力。
上述接口,增加赋值为 empty,则第一次查询到数据库为空,后续查询都查询到缓存中,缓存值为 empty。
再次执行并发测试