发表于: 2018-01-27 23:52:40
0 666
今天总结
1、吞吐率-Throughput-req/s(或者byt/s):单位时间内服务器处理请求数来描述其处理能力,称为吞吐量。特指web服务器单位时间内处理的请求数。
另一种描述吞吐率指单位时间内网络上传输的数据量,是衡量性能的重要指标。
2、吞吐量:与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
3、TPS(Transaction Per second):
Spring团队对Jedis进行封装,独立为spring-data-redis项目,我们要做的是同过spring-data-redis将redis集成到spring项目中。
1·、pom文件添加依赖
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.6.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2、注解
@Cacheable spring 会在其被调用后将返回值缓存起来,以保证下次利用同样的参数来执行该方法时可以直接从缓存中获取结果,而不需要再次执行该方法。
支持如下几个参数:
value:缓存位置名称,不能为空,如果使用EHCache,就是ehcache.xml中声明的cache的name
key:缓存的key,默认为空,既表示使用方法的参数类型及参数值作为key,支持SpEL
condition:触发条件,只有满足条件的情况才会加入缓存,默认为空,既表示全部都加入缓存,支持SpEL
@CachePut 标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。支持如下几个参数:
value:缓存位置名称,不能为空,同上
key:缓存的key,默认为空,同上
condition:触发条件,只有满足条件的情况才会清除缓存,默认为空,支持SpEL
allEntries:true表示清除value中的全部缓存,默认为false
@CacheEvict 用来标注在需要清除缓存元素的方法或类上的。
一般来说,我们的更新操作只需要刷新缓存中某一个值,所以定义缓存的key值的方式就很重要,最好是能够唯一,因为这样可以准确的清除掉特定的缓存,而不会影响到其它缓存值 ,
比如我这里针对用户的操作,使用(userId+方法名称)的方式设定key值 ,当然,你也可以找到更适合自己的方式去设定。
服务器测试
80循环1次
60循环1次
50循环1次
nginx的负载均衡后,有问题
遇到的困难:
【1、本地的项目放在服务器上跑不通】
显示无法获取redis连接,因为但是我已经把redis.host改成了服务器的ip,
原因:redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf,
在redis.conf中修改两处
1、bind 127.0.0.1注释掉
2、protected-mode yes--->protected-mode no
参考 https://www.cnblogs.com/liusxg/p/5712493.html
明天计划
结束任务6
禅道http://task.ptteng.com/zentao/my-task.html
评论