黑马点评-用JMeter测试缓存重建时,HTTP请求的响应结果的data为空
问题描述用JMeter测试缓存重建时,HTTP请求的响应结果的data为空解决方案1.未缓存预热(可能的问题1)“逻辑过期”方案通常用于极高并发的热点 Key。为了防止查数据库拖垮系统我们默认这些热点数据一定是事先手动存入 Redis 的解决方法:运行下面测试方法将热点key加入缓存,再进行测试2.入口方法未改过来(可能的问题2)有可能忘记把调用的方法切换到新写的 queryWithLogicalExpie 上了,切换到正确的方法重新运行即可3.Hutool 工具类的“暗坑”(最可能的问题)在 RedisData 类中data 字段的类型声明的是泛型 Object。当 Hutool 把 Redis 里的 JSON 字符串反序列化成 RedisData 时它不知道 data 具体是什么类所以只能把它解析成一个通用的 JSONObject本质上是个 Map接着当试图直接把这个通用的 JSONObject 强转并映射给 Shop.class 时Hutool 的底层反射在这个版本里会“迷失方向”导致属性映射失败。它不会报错而是默默地new 了一个 Shop 对象但里面的所有属性都是 null解决方法:先把这个 data 对象转回标准的 JSON 字符串然后再通过字符串去反序列化成 Shop 对象。Hutool 处理“字符串转对象”是绝对不会出错的(用以下代码替代上面红框中的代码即可)// 先把 data 转回 JSON 字符串再反序列化为 Shop 对象 Shop shop JSONUtil.toBean(JSONUtil.toJsonStr(redisData.getData()), Shop.class);效果展示
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2422399.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!