发表于: 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<student> FindAll() {
//取出所有学生的缓存
List<student> rs = (List<student>) client.get("AllStudent");
logger.info("查询出的缓存值为" + rs);
//如果缓存为空 返回缓存数据
if (rs != null) {
logger.info("缓存值不为空,现在返回缓存");
return rs;
} else {
//如果没有该条缓存,则从数据库里进行查询 再添加新缓存
logger.info("缓存为空,现在从数据库查询数据");
List<student> rss = 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<student> NoMemFindAll() {
logger.info("现在从数据库查询数据");
List<student> rss = 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<student> rs = (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();
}
}
本地 压测
有缓存 没缓存 瞬间差距就出来了
放到服务器 测压
今日问题 暂无
评论