发表于: 2018-03-16 21:02:21
1 545
今天完成的事情:
今天搭建了两个项目来准备压测。
采用的是任务七的基本框架。
整理好Memcache和redis,以及对应的json页面以后,简单做了一下压测。
不知道是不是网络的原因,压测json与压测jsp数据的时间几乎天壤之别:
无网线,无负载均衡,缓存,8000次测试 20线程 50循环
.png)

无网线,负载均衡,缓存 8000次测试 20线程 50循环
.png)

明天计划的事情:早上趁着网络最好的时候进行一次压测,然后提交任务六。
遇到的问题:
1.第一次启动网站的时候,发现返回的列表是先读取了一条缓存中的数据,然后因为没有多余数据的存在,又从数据库读取了其他的数据。页面上会显示的是两条相同的数据。
整理很久以后,发现问题在处理缓存和读取数据库的时候逻辑出错。
重新梳理了一遍逻辑,就是在读取数据库的时候,就清空缓存,然后清空list表单。
然后吃午饭的时候,和牛涛说的时候,突然感觉逻辑是不是还有其他问题。然后回来再次调试了一次,添加了统计数据库记录条数的判断,然后最终的逻辑判断如下:
List<Student> studentList = new ArrayList<>();
String name = null;
Student student = null;
for (int i = 1; i <= studentDao.countAll(); i++) {
name = "student" + i;
student = (Student) xMemcachedUtil.getCache(name);
if (student != null) {
studentList.add(student);
}
}
if (student != null) {
return studentList;
} else {
xMemcachedUtil.fullCache();
studentList.clear();
for (int i = 1; i <=studentDao.countAll(); i++) {
student = studentDao.selectById(i);
if (student != null) {
studentList.add(student);
name = "student" + i;
xMemcachedUtil.addCache(name, 60 * 60, student);
}else {
return studentList;
}
}
}
return studentList;
收获:
1.晚上听小课堂,对时间戳函数有了一个更深的认识:
首先,全球的时间戳都是从一个固定的时间开始,所以全球获取的时间戳是一致的,然后使用其他时间函数的时候,函数会自动根据本机或者设置好的时区来返回相对于时区的正确时间。
然后,在数据库中,tempsTime会自动更新时间,但是如果设置为default create CURRENT_TIMESTAMP的时候,就只会记录创建记录的时间而不会记录更新数据的时间。
2.如何设置数据库字段的数据格式:原则是哪一种性能更好就用哪一种,一般是类型越小性能越好。
评论