自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xusheng__zhang的博客

吃得苦中苦方为人上人

  • 博客(42)
  • 收藏
  • 关注

原创 hot-edit实现不重启Java服务修改Java代码

不重启Java服务修改代码。

2024-03-11 18:30:41 301

原创 检查ElasticSearch集群信息

ElasticSearch提供了一套cat api可以方便的查看集群各方面的信息。检查集群的健康状态GET /_cat/health?v 返回结果 我们主要观察一个字段status,这个字段有三个值,分别是red,yellow,green。 green:每个索引的primary shard和replica shard都是active状态的 yellow:每个索引的primary ...

2018-02-28 11:52:22 826

原创 ElasticSearch的基本概念

概念 解释 Cluster 集群,一个集群中包含多个node. Node 一个elasticsearch服务器。 Index 索引,包含一堆有相似结构的文档数据,类似于关系型数据库的一个库。一个index下可以有多个type. Type 类型,每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,类似于关系型...

2018-02-28 11:37:34 370

翻译 elasticsearch倒排索引

先简单介绍一下ElasticSearch。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并...

2018-02-28 11:27:52 828

原创 MySQL优化——使用explain来分析sql语句

MySQL为我们提供了一个分析sql语句执行计划的利器,那就是explain。通过explain我们可以分析一个sql语句完整的执行计划,包括使用的索引,扫描的行数以及是否使用了文件排序等等,在我们分析sql语句,优化sql语句中具有重要的意义。

2018-01-02 15:16:49 1528

原创 MySQL优化——定期清理索引碎片

在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.我们可以通过一个nop操作(不产生对数据实质影响的操作), 来修改表.比如: 表的引擎为innodb , 可以 alter table xxx engine innodb。也可以使用optimize table 表名 来进行修复. 注意: 修复表的数据及索引碎片,就会把所有的数据文件重新整理一遍,使之对齐.这个过程,如果表的行数

2018-01-01 20:37:02 5827

原创 MySQL优化——关于索引

MySQL中btree搜因和hash索引的区别MySQL中主要有两种索引,BTree索引和hash索引。默认情况下innodb和myisam都是使用的Btree索引,memory表使用的是hash索引。hash索引的查询复杂度为o(1)。也就是说hash索引查询速度比Btree快。但是hash索引由于是随机散列函数,数据会被放在不连续的地方,所以无法利用hash索引快速的查询某个区间的值。ha

2018-01-01 17:58:23 330

原创 MySQL优化——建立表的一些经验

1.将定长和变长字段分离。核心常用字段,适合建立成定长,放在一张表里面。而varchar,text,blob等变长字段,适合单独存放,使用主键和核心字段相关联。2.冷热分离根据业务将查询频度高字段和查询频度低的字段分开存储。3.适当增加冗余字段典型的用空间换时间,比如某些情况下,每插入一条数据就将count加一(count是冗余字段),这样在查询统计数量时就可以直接查询count,而不用再计数。4.

2017-12-31 21:01:07 387

原创 MySQL优化——使用profiling

MySQL在5.0之后有个分析查询语句非常重要的利器,就是profiling。 要是用profiling,我们首先要打开profiling。set profiling=on;设置了profiling之后,你的每一个sql语句都会被记录分析。使用show profiles;可以查看在打开profiling之后所有被记录的操作。(这里只是为了举例,使用了非常简单的查询)+----------+----

2017-12-31 20:34:11 4024

原创 MySql优化——观察连接状态

MySQL在优化时候,可以使用show processlist来产看mysql的连接工作状态。为了能够在shell中直接使用这个命令,我们使用mysql -uroot -p123456 -e “show processlist”来代替命令行中的show processlist。 该命令返回的结果大致如下:+----+------+-----------+------------+---------

2017-12-31 20:09:57 2019

原创 MySql优化——观察服务器状态

通常在对MySQL进行优化的时候,不要一上来就去优化MySQL的语句。MySQL的优化是一个系统话的过程,我们要自上而下来对MySQL进行优化。MySQL优化的第一步是观察服务器状态,找出出问题的地方在哪里,然后才能有的放矢。我们可以使用show status和show processlist命令来观察MySQL的服务器状态。show status返回了服务器很多状态指标,但是通常我们只需要关注以下

2017-12-31 18:52:59 369

转载 Java利用Request请求获取IP地址对应的省份、城市

这里的操作步骤一共有步: 通过Request获取IP通过IP获取对应省份、城市通过设置的省份和IP对应省份进行比对,展示内容通过Request获取IPpublic class IpAdrressUtil { /** * 获取Ip地址 * @param request * @return */ private static String getIpAdrress(HttpServl

2017-12-20 18:30:06 3517

转载 如何限制用户在某一时间段多次访问接口

转载自https://www.cnblogs.com/leechenxiang/p/6181449.html 要知道,如今很多平台的接口都是可以同时被门户网站,手机端,移动浏览器访问,因为接口是通用的,而为了安全起见,有些接口都会设置一个门槛,那就是限制访问次数,也就是在某一时间段内不能过多的访问,比如登录次数限制,在一些金融理财或者银行的接口上比较常见,另外一些与用户信息有关的接口都会有一个限制

2017-12-20 18:16:49 9374

转载 linux使用yum安装mysql

CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。1.下载mysql的repo源$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm2.安装mysql-community

2017-12-10 16:01:32 353

转载 linux命令返回值-错误码对照表

"OS error code 1: Operation not permitted""OS error code 2: No such file or directory""OS error code 3: No such process""OS error code 4: Interrupted system call""OS error code 5: In

2017-12-05 10:18:51 9743

翻译 shared nothing架构

shared noting(SN)是一种分布式计算架构。这这种架构中,每一个节点都是独立的,自给的,在系统中不存在单点竞争。更明确地说,没有节点共享存储和硬盘。人们通常将SN和大量保存中央存储状态信息的系统进行对比,无论是在数据库,应用服务器或者是其他相似的单点竞争。 SN相对中央控制架构有很大的优点。SN可以避免单点故障,拥有自我恢复能力,并且在不破坏原有系统的情况下进行升级。 SN架构的概念

2017-11-22 10:48:58 11105

原创 nohup命令分析

nohup是linux中经常被使用的命令。主要用来在后台不挂断的运行命令(no hang up)。 nohup的命令格式如下: nohup Command [ Arg … ] [ &] Command是我们要执行的命令,Arg为可选参数,后面的&一定要加上,这样进程才会在后台运行。 比如我们在linux启动RocketMq的broker时使用下面的命令:nohup sh mqbroker -

2017-11-22 08:33:31 636

转载 spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等

(转载自网络) 本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有一个系列来讲解mybatis,这个系列从mybatis的入门开始,到基本使用,和spr

2017-11-09 08:06:31 15681 5

原创 CHECK the manual that corresponds TO your MySQL SERVER VERSION FOR the RIGHT syntax TO USE near.....

使用spingdata+jpa+hibernate来对数据库进行插入操作的时候,出现了一个报错信息,说sql语法有误。报错信息如下:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error IN your SQL syntax; CHECK the manual that corresponds TO y

2017-11-08 20:44:07 5578 2

原创 MongoDB中使用MapReduce来进行聚合操作

在mongoDB的MapReduce操作中,map函数产生一些列中间数据,这些中间数据是key/value的集合。reduce函数收集具有相同中间key值的value值,合并这些value值,形成一个较小的value值的集合。 一个MongDB的MapReduce执行的过程如下所示。 在这个MapReduce操作中,首先通过query筛选出了一部分的数据,然后对着一部分的数据进行map操作

2017-11-07 20:35:26 6468 1

原创 使用mongoDB pipeline进行聚合操作

mongoDB中的聚合操作将多个文档中的值组合在一起,并可对分组数据执行各种操作,以返回单个结果。 在SQL中的 count(*)与group by组合相当于mongodb 中的聚合功能。 mongoDB为我们提供了三种方法来实现聚合操作。分别是aggregation pipeline,Map-Reduce和Single Purpose Aggregation Operations。今天我们主要来

2017-11-06 20:18:58 19023 1

原创 hadoop系列教程第二讲:环境搭建

上一章我们讲了关于hadoop的一些基本的概念,这一章我们开始着手搭建hadoop的开发环境。 首先你要有linux虚拟机,关于VMware和linux虚拟机的安装这里就不多说了。可以自行百度,很简单。 假定我们已经有了linux虚拟机,接下来我们就开始进行hadoop环境的安装。1.使用useradd创建一个用户,这里我们取名为hadoop [root@localhost ~]# user

2017-10-29 10:51:46 280

原创 mysql查询出所有重复的记录

假如我们有如下一张数据表(很简单,只是举例而已),表名为student。现在我们要取出其中重复记录。重复是以name相同为判定标准。 shortnameageheightweightprovinceuniversity小王20170150河南清华大学小张21175144河北北京大学小李20160122福建武汉大学小赵35165177江西浙江大学小孙40164188西藏华中科技大学小宋

2017-10-28 16:13:08 36339 1

转载 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等

作者:zxin,出处:博客园:http://zxin.cnblogs.com/链接:http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:

2017-10-27 20:40:29 389

原创 maven工程报错failure to transfe........................

maven工程报错failure to transfe……………………是因为本地maven仓库中对应的jar包不完整导致的。这个时候本地的jar包对应的目录下一般会有一个.lastUpdated的文件。这个是因为maven由于网络原因导致jar没有下载完整,即使后来网络畅通了,也不会自动修复。需要我们打开自己的本地maven库,找到对应的jar包目录,直接删除,然后update工程,重新下载jar包

2017-10-27 16:31:43 206

转载 RSync实现文件备份同步

转载自网络博客未找到原作者,如有侵权,请联系[email protected]。 [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync] 一、什么是rsync   rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信

2017-10-27 10:57:51 391

原创 正则表达式从入门到精通(提高篇)

上一篇我们讲到了正则表达式的一些基本的用法,这一篇我们来一起看一下正则表达式的一些高级的用法。1.正则表达式之子模式为了弄清子模式的用法,我们先来看一个正则表达式。”((ab)+)dfs”。在这个正则表达式中,我们可以将表达式分为两部分,第一部分是”((ab+))”,第二部分是”dfs”。假如现在有一个字符串”ababdfs”,那么正则表达式的第一部分匹配到了”abab”。加入我想取出来这个第一部分

2017-10-26 17:44:01 1175

原创 linux网络设置

1.查看ip地址ifconfig(已经过时)ip addr show2.指定ip地址vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0HWADDR=00:0C:29:8E:0B:00TYPE=EthernetUUID=f23f083d-89af-4951-a33d-496d4534beb1ONBOOT=yesNM_CONTROL

2017-10-26 09:13:05 2110

原创 hadoop系列教程第一讲:基本概念

2003-2004年,Google公开了部分GFS(分布式文件系统)和Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和Mapreduce机制,一个微缩版:Nutch Hadoop 于 2005 年秋天作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。2006 年 3 月份,Map-Reduce 和 Nutch Distri

2017-10-25 18:37:24 368

转载 DRUID连接池的实用 配置详解

DRUID介绍DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快)。配置参数和其它连接池一样DRUID的DataSource类为:com.alibaba.druid.pool.DruidD

2017-10-24 07:22:19 395

转载 倚天剑:apache-common-collections

接着上次的话题,再介绍apache-common系列中另一个重要的成员:apache-common-collections。包中对Java中的集合类进行了一定的补充,定义了一些全新的集合,当然也是实现了Collection接口的,比如Bag,BidiMap。同时拥有新版本的原有集合,比如FastArrayList。最后,更为重要的是一系列utils类,提供了我们常用的集合操作,可以大大方便我们的日常

2017-10-21 10:23:41 860

转载 Maven的生命周期和插件

一个完整的项目构建过程通常包括清理、编译、测试、打包、集成测试、验证、部署等步骤,Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都交由插件来完成。Maven为大多数构建任务编写并绑定了默认的插件,如针对编译的插件:maven-compiler-plugin。用户也可自行配置或编写插件。1 . 三套生命周期  Maven定义了三套生命周期:clean、d

2017-10-17 07:23:44 130

原创 MariaDB实现主从复制

MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是决定另开分支,这个分支的名字叫做MariaDB。 MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。 1.环境准备:首先你要有两台相互

2017-10-15 15:30:20 1043

原创 spring boot中使用redis

springboot是下一代框架,大大简化了对spring的使用,在springboot中使用redis同样非常简单。 首先新建一个boot项目,然后再boot项目中加入redis的依赖。 org.springframework.boot spring-boot-starter-data-redis 1.5.6.RE

2017-10-13 11:41:23 1510

原创 maven工程创建后没有src/main/java目录

今天才发现maven工程创建后没有src/main/java目录的原因,是因为jre环境的问题。在maven项目上右键build path,将JRE System Library设置为默认jrejike

2017-10-13 09:10:50 1600 1

原创 maven dependency依赖中scope标签的常用值

很多时候默认情况下我们在加入dependency依赖的时候会不写scope这个标签,这个时候的scope默认就是compile,即maven的scope默认的值就是compile。除了compile之外,scope还可以取值为provided,runtime,test,system和import。下面就分别说明这几个在使用时候的含义。compile:这是maven中默认的值,在不明确指定sco

2017-10-11 09:08:03 1360

原创 使用swagger创建功能强大的API

wagger是什么?swagger官网对其的简介为:Swagger is the world’s largest framework of API developer tools for the OpenAPI Specification(OAS), enabling development across the entire API lifecycle, from design and do

2017-09-29 18:05:32 5375

原创 springmvc九大组件之HandlerMapping

HandlerMapping的主要作用就是通过用户的请求找到对该请求相应的处理器。打开HandlerMapping的源代码我们可以看见,HandlerMapping只有一个方法:HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception。HandlerExecutionChain 中封装了Handl

2017-09-27 11:57:19 461

转载 @SuppressWarnings可以抑制的警告类型

The list of tokens that can be used inside a SuppressWarnings annotation is:all to suppress all warningsboxing to suppress warnings relative to boxing/unboxing operationscast to suppress warnings

2017-09-21 14:12:06 863

原创 SpringMVC之DispatcherServlet

DispatcherServlet是springMVC的前端控制器,也是springMVC中最重要的一个类。理解了DispatcherServlet也就差不多理解了springMVC。DispatcherServlet继承自FrameworkServlet,FrameWorkServlet继承自HttpServletBean并且实现了ApplicationContextAware接口。Http

2017-09-21 11:34:56 598

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除