clock |


  • 首页

  • 分类

  • 归档

  • 标签

redis配置优化(记一次线上redis问题排查)

发表于 2017-06-22   |   分类于 redis

一、问题描述

在通过redis缓存进行了一系列的接口性能优化后,大部分接口返回在1ms~200ms间,这都是redis的功劳,但随着接口redis缓存越来越多,新的问题产生了,从redis取数据竟然用了5s = =,通过观察日志,并不是每次取数据都是5s,
大部分情况从redis取数据还是很快的不会超过5ms.

二、解决

1 在查看代码后,发现有些redis的key设计的过长,于是首先重命名了rediskey尽量减少其长度,但观察发现这种情况还
是存在,并且观察日志,redis取数据耗时长的问题大概隔一段时间才发生
2 查看redis配置,发现redis初始化线程池大小没有设置= =,需要知道的是redis初始化线程大默认是0,在了解redis模式
和服务器端设置的连数大小后,果断加上redis初始化线程大小.问题解决,如果以后发现这种问题,但检察初始连接数已配置,可考虑初始连接数是否配置过小.

注意:
redis初始化线程数大小是需要根据redis并发数来设置的.

阅读全文 »

mybatis使用PageHelper分页插件原理

发表于 2017-01-11   |   分类于 java

1、官方介绍:

https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md
官方介绍文档中已经说明了详细的配置方法和使用方法,这里不再详细介绍。

2、简单说一下本项目的配置案例。

a、spring配置文 件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注意其他配置 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!--使用下面的方式配置参数,一行配置一个 -->
<value>
params=value1
</value>
</property>
</bean>
</array>
</property>
</bean>
阅读全文 »

上传本地jar包到nexus私服

发表于 2016-07-29   |   分类于 maven

目前maven项目是用的比较多的,那么上传本地jar到maven仓库也是常会有事,下面介绍一下如何上传jar到本地仓库和远程仓库。

一、用命令上传jar包到本地仓库

1
2
3
4
5
6
<dependency>
<groupId>com.spreada</groupId>
<artifactId>ZHConverter</artifactId>
<version>1.0</version>
</dependency>
mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar
阅读全文 »

调用webservice客户端几种常用方式

发表于 2016-07-26   |   分类于 java

一、spring-ws-core的WebServiceTemplate不需要生成webservice客户端调用webservice

1、先加spring-ws-core依赖

1
2
3
4
5
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-core</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>

当spring-ws-core整合spring-webmvc 4.1.2时会出现一个异常如下:

阅读全文 »

DynamicDataSource添加动态数据库连接

发表于 2016-05-06   |   分类于 java

一、为什么引进动态数据库配置?

随着网站的业务不断扩展,数据不断增加,用户越来越多,数据库的压力也就越来越大,采用传统的方式,
比如:数据库或者SQL的优化基本已达不到要求,这个时候可以采用读写分离的策 略来改变现状。

二、通常做法

一个Master数据库,多个Slave数据库。Master库负责数据更新和实时数据查询,Slave库当然负责非实时数据查询。
把查询从主库中抽取出来,采用多个从库,使用负载均衡,减轻每个从库的查询压力。

阅读全文 »

maven profile打包时实现可指定不同环境配置文件

发表于 2015-11-14   |   分类于 maven

通常项目部署环境可以有多个,需不同环境的配置文件参数有所不同,需要我们在打包时就可以指定打包不同环境的配置文件。
只需要通过maven插件就可以实现

一、第一种方式

1、pom.xml中需要添加:

阅读全文 »

在打包时就推送项目到远程服务器的maven插件wagon-maven-plugin

发表于 2015-11-14   |   分类于 maven

wagon-maven-plugin 让你运行mvn package时就可以将项目部署远程服务器的插件,只需在你的pom.xml文件中添加:

阅读全文 »

guavacache

发表于 2015-08-12   |   分类于 java

缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问时再次使用。在很多场景下对于经常会请求并且实时性要求不高的数缓存是很有必要的。
当redis可以实现缓存,并且是基于第三方服务的缓存,也是比较常用的。这里来说明一下基于全内存的本地缓存实现,常用到基于内存的缓存有1、mybatis框架缓存2、guava cache缓存

一、mytabis框架缓存

mytabis框架缓存可用于数据库查找等数据的缓存

1、添加缓存依赖

阅读全文 »

spring4实现xml零配置,jpa作为持久层

发表于 2015-07-04   |   分类于 java

一、spring4中提供了大量的注解来支持零配置,简要说明如下:

@Configuration: 类似于spring配置文件,负责注册bean,对应的提供了@Bean注解。需要org.springframework.web.context.support.AnnotationConfigWebApplicationContext注册到容器中。
@ComponentScan: 注解类查找规则定义
@EnableAspectJAutoProxy: 激活Aspect自动代理
@Import @ImportResource: 关联其它spring配置
@EnableCaching:启用缓存注解
@EnableTransactionManagement : 启用注解式事务管理
@EnableWebMvcSecurity: 启用springSecurity安全验证

阅读全文 »

MyBatisGenerator 实现Model、sqlMap、dao自动生成

发表于 2015-07-04   |   分类于 java

MyBatis Generator是一个用来根据表结构自动生成对应model、sqlmapper、dao层代码的工具。当表结构比较复杂、sql语句比较多的时候,用这个工具可以节省开发时间
同时也降低了手动编写sql时出现的一些错误。下面看看MyBatis Generator如何使用。

一、传统的实现方法

1、引入mybatis-generator-core jar包

2、新建generatorConfig.xml文件,内容参考官方文档: http://www.mybatis.org/generator/configreference/xmlconfig.html

3、执行命令(可根据实际情况自定义文件路径),内容参考官方文档:http://www.mybatis.org/generator/quickstart.html

1
java -jar E:\repository\org\mybatis\generator\mybatis-generator-core\1.3.2\mybatis-generator-core-1.3.2.jar -configfile src\main\resources\generatorConfig.xml -overwrite
阅读全文 »
123
clock bone

clock bone

29 日志
4 分类
10 标签
GitHub
© 2015 clock bone
Powered by Hexo
Theme - NexT.Muse