redis在springboot项目中的应用

一,将查询结果放到redis中作为缓存,减轻mysql的压力。

只有在数据量大的时候,查询速度慢的时候才有意义。

本次测试的数据量为XXX.

测试代码: 功能为根据昵称进行模糊匹配。

@GetMapping("/get-by-nick")
    public String getNickName(String nickName){
        LambdaQueryWrapper<UserPO> wrapper = new LambdaQueryWrapper<UserPO>()
                .like(UserPO::getNickName,nickName)
                .or()
                .like(UserPO::getUserName,nickName);
        List<UserPO> 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();
        }
        LambdaQueryWrapper<UserPO> wrapper = new LambdaQueryWrapper<UserPO>()
                .like(UserPO::getNickName,nickName)
                .or()
                .like(UserPO::getUserName,nickName);
        List<UserPO> userPOS = userMapper.selectList(wrapper);
        if (userPOS.isEmpty()){
            redisTemplate.boundValueOps(key).set("暂无此人");
            return "暂无此人";
        }
        redisTemplate.boundValueOps(key).set(userPOS.toString());
        return userPOS.toString();
    }

第一次测试:

上一篇:JSON 配置文件


下一篇:SpringCloud-Nacos注册中心