Redis缓存查询数据(测试)

案例:查询 如果redis有数据则使用redis数据 如果没数据则从mysql查 使用mysql的数据 然后存入redis

1.存单个对象

 /**
     *
     * 单个对象缓存在redis
     * @param id
     * @return
     */
    @GetMapping("/redis")
    public User redisTest(Long id)
    {
        log.info("参数:"+id);
        String redisKey ="redis"+id;
        //判断key是否存在
        boolean exists= redisUtil.exists(redisKey);
          if (exists)
          {
              //从redis读取
             String json= redisUtil.get(redisKey,0);
             log.info("从redis读取json:"+json);
             //反序列化为对象
             User user =JSON.parseObject(json,User.class);
             return user;
          }
          else
          {
              //从mysql查
              User user=iUserService.selectById(id);
              //转成json字符串 存入redis
              String userJson= JSON.toJSONString(user);
              log.info("从mysql读取userJson:"+userJson);
              //存入redis
              redisUtil.set(redisKey,userJson,0);
              //设置过期时间
              redisUtil.expire(redisKey,2000,0);
              return  user;
          }


      //User userInfo =iUserService.selectById(id);


       /* redisUtil.set("900","1000",1);
        String value= redisUtil.get("900",0);
        System.out.println(value);*/

       //删除
       /* Long del= redisUtil.del("11","111");
        System.out.println(del)*/

        //追加
      /*  Long len= redisUtil.append("900","888");
        System.out.println(len);*/
     // redisUtil.flushDB();

    }

2.缓存List<对象>

/**
     * List 存贮
     *
     * @return
     */
    @GetMapping("/selectAll")
    public List<User> selectAll()
    {
        String redisKey ="redisList";
        //判断key是否存在
        boolean exists= redisUtil.exists(redisKey);
        if (exists)
        {
            //从redis读取
            String json= redisUtil.get(redisKey,0);
            log.info("从redis读取json:"+json);
            //反序列化为对象
            List<User> user =JSON.parseArray(json,User.class);
            return user;
        }
        else
        {
            //从mysql查
            List<User> user=iUserService.selectList(new EntityWrapper<>());
            //转成json字符串 存入redis
            String userJson= JSON.toJSONString(user);
            log.info("从mysql读取userJson:"+userJson);
            //存入redis
            redisUtil.set(redisKey,userJson,0);
            //设置过期时间
            redisUtil.expire(redisKey,2000,0);
            return  user;
        }



    }
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Doe 发布 [V1.0.0] 前段时间排查某问题的时候,想要快速知道某些dubbo接口(三无)的响应结果,但不想启动项目(因为这些项目不是你负责的,不会部署而且超级笨重),也不想新建一个dubbo客户端项目(占地方),也不想开telnet客户端连接口(麻烦而且有限制)。所以扣了dubbo的netty模块源码,封装了个收发客户端集成一个工具,可以快速调试dubbo接口。源码地址:https://github.com/VIPJoey/doe 极简模式 普通模式 目录结构 mmc-dubbo-api 接口项目,主要用于测试。 mmc-dubbo-provider dubbo提供者项目,主要用于测试。 mmc-dubbo-doe 主项目,实现dubbo接口调试。 deploy 部署文档 功能特性 极简模式:通过dubbo提供的telnet协议收发数据。 普通模式:通过封装netty客户端收发数据。 用例模式:通过缓存数据,方便下一次操作,依赖普通模式。 增加依赖:通过调用maven命令,下载jar包和热加载到系统,主要用来分析接口方法参数,主要作用在普通模式。 依赖列表:通过分析pom文件,展示已经加载的jar包。 其它特性 springboot 整合 redis,支持spring el 表达式。 springboot 整合 thymeleaf。 springboot 整合 logback。 netty rpc 实现原理。 开发环境 jdk 1.8 maven 3.5.3 dubbo 2.6.1 lombok 1.16.20 idea 2018 windows 7 安装步骤 安装jdk 安装maven,并设置好环境变量,仓库目录。 进入mmc-dubbo-api目录,执行mvn clean install命令,省api的jar包。 进入mmc-dubbo-doe目录,执行mvn clean install 命令,在target目录生成dubbo-doe-1.0.0-RELEASE.jar 在F盘(可以任意盘)创建目录F:\app\doe 把dubbo-doe-1.0.0-RELEASE.jar拷贝到F:\app\doe 把deploy目录的所有文件拷贝到F:\app\doe 如果您电脑安装了git bash,可以在bash窗口运行 ./deploy.sh start,否则如果没有安装git bash,只能打开cmd切换到F:\app\doe目录,然后执行java -jar dubbo-doe-1.0.0-RELEASE.jar --spring.profiles.active=prd 打开浏览器,访问地址:http://localhost:9876/doe/home/index 全剧终

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值