长安镇网站建设公司,婚庆公司一条龙包括哪些,公众号平台规则,宁波网络推广推荐机构一#xff0c;将查询结果放到redis中作为缓存#xff0c;减轻mysql的压力。
只有在数据量大的时候#xff0c;查询速度慢的时候才有意义。
本次测试的数据量为XXX.
测试代码: 功能为根据昵称进行模糊匹配。
GetMapping(/get-by-nick)public String getNickN…一将查询结果放到redis中作为缓存减轻mysql的压力。
只有在数据量大的时候查询速度慢的时候才有意义。
本次测试的数据量为XXX.
测试代码: 功能为根据昵称进行模糊匹配。
GetMapping(/get-by-nick)public String getNickName(String nickName){LambdaQueryWrapperUserPO wrapper new LambdaQueryWrapperUserPO().like(UserPO::getNickName,nickName).or().like(UserPO::getUserName,nickName);ListUserPO userPOS userMapper.selectList(wrapper);if (userPOS.isEmpty()){return 暂无此人;}return userPOS.toString();} 可以看到大约是耗时10秒左右这样的性能对用户是不能接受的。
想到加入redis缓存修改代码如果redis中没有那么将查询结果存放到redis中。
GetMapping(/get-by-nick)public String getNickName(String nickName){String key buildKey(nickName);if(Boolean.TRUE.equals(redisTemplate.hasKey(key))){return redisTemplate.boundValueOps(key).get();}LambdaQueryWrapperUserPO wrapper new LambdaQueryWrapperUserPO().like(UserPO::getNickName,nickName).or().like(UserPO::getUserName,nickName);ListUserPO userPOS userMapper.selectList(wrapper);if (userPOS.isEmpty()){redisTemplate.boundValueOps(key).set(暂无此人);return 暂无此人;}redisTemplate.boundValueOps(key).set(userPOS.toString());return userPOS.toString();}
第一次测试: