发表于: 2017-12-10 22:13:16
1 894
今天完成的事情:
加上Memcache,在新建数据的时候同时维护好缓存(没有新建数据接口就自己加上,可以分成是压测JSP和Json接口两种方式) ,确定数据没问题,重新压测服务器,测出90%的线在哪里.
明天计划的事情:部署两台WEB,使用Nginx的Upstream来做负载。重新压测。
遇到的问题:memcache储存中文是乱码,百度没有相关解决办法
收获:
安装Memcache。看师兄的日报,官网没有window的链接,自己贴一个
http://www.runoob.com/memcached/window-install-memcached.html
我下载的是64位1.4的
使用Telnet管理memcache,我的是win10
勾选
在cmd输入 telnet 127.0.0.1 11211 (127.0.0.1是本地ip,11211是memcached端口号)
使用telnet管理memcache
https://jingyan.baidu.com/article/f79b7cb310b6079144023e8f.html
起先还没懂,输入add name 0 60 2后回车没反应。原来是继续出入数据。0代表是否压缩缓存,500是缓存时间,2是缓存字符长度,后面的haha是缓存字符
然后在idea配置memcache。看来这个和json那个包一样,也需要cmd命令导入jar包
http://www.cnblogs.com/mycifeng/p/5882509.html
我已经有slf4j-apile ,就安装其他三个
这里只用cmd命令安装memcache,pom也要添加,其他三个在pom直接添加应该就行了
照着例子写了两个测试类,。我对memcache大概理解为把数据库数据查询出来暂时放在缓存里,当高并发时直接对缓存增删查改,不用多次连接数据库,减少数据库压力
首先需要对user表序列化,也就是之前一直不懂的实体类继承 Serializable
implements Serializable
为什么要序列化?
我想是因为要把user存储到memcache,所以需要序列化吧
同时要重写hashCode 和 equals方法
我想是因为:类是引用类型,即使两个类里面的的变量数据一样,但计算机还是会把们的内存分配成两部分,所以他们的引用地址不一样,equal自然也就返回false,所以我们要重写hashcode储存变量数据一样的两个类的id(我理解为因为id通常是唯一的,凡是设置了唯一索引或不能重复的列都行)的hashcode值,然后在equals方法里比较两个id的hashcode就行了
未重写equal和hashcode方法
重写方法
在cmd查看
在task5基础加上memcache
每次登陆成功,把user的数据加到memcache里,登陆时判断是否有memcache缓存
看师兄日报。把判断写到service里,service不是接口吗?没有方法体怎么判断的?
我测试登录,先把拦截器注释
没有memcache压测
有memcache压测
上面是没有memcache,下面是有,两组对比,差距很明显啊
刚才memcache可能是缓存量太大,我重启了一下memcache可以jemeter测试了
如何手动清楚memcache缓存?
在命令行输入 flush——all 出现ok就行了
cmd查看登陆的缓存
看师兄日报,下载一个memcache可视化工具
http://www.cnblogs.com/treesoft/p/7124440.html
这里也有了
看里面的说明自己配置吧
当我写测试类测试,另一个
然后压测json接口
添加依赖
<!-- 映入JSON -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.0</version>
</dependency>
控制器方法,加了@ResponseBody,返回格式自动变成json
返回json,然后配置jemeter
有memcache缓存的情况
没有memcache的情况,同样对比很明显各数据相差一倍多
禅道:http://task.ptteng.com/zentao/task-view-15140.html
评论