发表于: 2020-09-04 22:48:27

1 1750


.修改了memcached 缓存的代码

昨天的添加缓存有问题


三个方法  

1.带缓存  查询所有学员

2.不带缓存  查询所有学员

3.添加学员  更新缓存        

/**
     * @Author: TianBo
     * @Description:   查询所有学员 ,有缓存取缓存  没缓存新增一个缓存
     @Date: 2020/5/23
     * @return: java.util.List<com.mb.enity.student>
**/

   @Override
   public List<studentFindAll() {
       //取出所有学生的缓存
       List<studentrs = (List<student>) client.get("AllStudent");
       logger.info("查询出的缓存值为+ rs);
       //如果缓存为空   返回缓存数据
       if (rs != null) {

           logger.info("缓存值不为空,现在返回缓存");
           return rs;

       else {

           //如果没有该条缓存,则从数据库里进行查询   再添加新缓存
           logger.info("缓存为空,现在从数据库查询数据");
           List<studentrss = studentMapper.FindAll();
           logger.info("从数据库中查询处的数据为+ rss);
           //把从数据库查出的的数据放进缓存
           try {
               boolean state = client.set("AllStudent"rss);
               logger.info("添加新缓存的key:AllStudent ========= value+ rss);
               logger.info("是否已经进缓存"+state);

           catch (Exception e) {
               logger.info("添加新缓存失败");
               e.printStackTrace();
           }
           return rss;
       }
   }

   /**
     * @Author: TianBo
     * @Description: 查询所有学员  不填加缓存
     @Date: 2020/5/23
     * @return: java.util.List<com.mb.enity.student>
**/

   @Override
   public List<studentNoMemFindAll() {

       logger.info("现在从数据库查询数据");
       List<studentrss = studentMapper.FindAll();
       logger.info("从数据库中查询处的数据为+ rss);
       return rss;
   }

   /**
     * @Author: TianBo
     * @Description:  插入一条新数据,并且更新缓存
     @Date: 2020/5/23
     * @Param student:
     * @return: int
     **/

   @Override
   public int AddStudent(student student) {

       logger.info("添加的数据为+ student);

       //添加数据

       studentMapper.AddStudent(student);


       //取出增加所有学员后所有学生的缓存
       List<studentrs = (List<student>) client.get("AllStudent");
       logger.info("查看现有缓存值:+ rs);

       //如果缓存不为空  更改缓存数据
       if (rs != null) {
           logger.info("缓存值不为空");

           //更改缓存数据
           try {
               logger.info("开始更新缓存");
               boolean state = client.replace("AllStudent"rs);
               logger.info("更新缓存结果+"+state );
           catch (Exception e) {
               logger.info("更改缓存值失败"+e.toString());
               e.printStackTrace();
           }
  }
       //返回刚刚插入用户的id
       return student.getId();
   }
}


本地 压测

有缓存  没缓存    瞬间差距就出来了




放到服务器  测压  

今日问题 暂无


返回列表 返回列表
评论

    分享到