发表于: 2017-12-10 22:13:16

1 893


今天完成的事情:

  加上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









  


返回列表 返回列表
评论

    分享到