自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 java模拟高并发

public class ConcurrentTest { private static int threadCount = 10; public static void main(String[] args) { final CountDownLatch countDownLatch = new CountDownLatch(threadCount); fo

2018-02-11 11:28:53 1969

原创 MYSQL查询每个分类的第一条数据

name score type张三 89 1李四 58 1王五 80 2马六 35 2周七 95 3要求查询结果为:name score type张三 89 1王五 80 2周七 95 3mysql的语句可以这样写:select * from ( selec

2018-02-07 14:58:14 24934 2

原创 命令行修改mysql字段跟索引

1,增加字段alter table table_name add column_name varchar(32) not null default 'yes'2,更改字段alter table user MODIFY new1 VARCHAR(10);  //更改字段         alter table user CHANGE new1 new4 int;   //修改一

2017-11-23 10:52:19 691

原创 01--js判断变量为null或者""

判断不是nullif (!exp){ alert("is null");}

2017-11-06 10:15:14 407

原创 001--java高并发初步

一般说的java高并发,基本是讲3个方面的01,同步,包括synchronized 和各种锁02,同步容器,比如ConcurrentHashMap等03,线程池01,synchronized跟ReentrantLock的区别01,发生异常时,前者会释放锁,而后者不会02,ReentrantLock可以进行尝试锁定,如果一段时间内锁定失败了,就可以执行其他操作,而不必一直等待,在灵活性上,要比s

2017-10-24 21:18:02 271

原创 在mysql中使用正则

SELECT prod_nameFROM productsWHERE prod_name REGEXP '.000'ORDER BY prod_name;例1: 找手机号中至少存在3个叠号的号码select * from `user` where phone REGEXP '[1][359].[0-9]\\1{3}.'

2017-07-10 20:40:28 323

原创 count的正确使用

count的正确使用select count(true or NULL)//答案为1select count(FALSE or NULL)//答案为0count后面如果遇到null,就不计数。但是不管是遇到true还是false,都是计数的。所以当表达式为false时,后面要跟上 or nullselect count(sex=1 or null) as '男',count(s

2017-07-10 20:19:07 2291

原创 mysql复杂delete操作

对表进行update或者delete操作时,mysql不支持在where语句后面进行自身的查询,举个例子delete from chat_room where id in(select max(id) as id from chat_room where user_to_id>0GROUP BY create_user_id,user_to_id having count(create_us

2017-07-04 21:08:45 1767

原创 mysql中的常用函数

1,字符串函数 字符串连接函数SELECT CONCAT('i',' love',' you')SELECT CONCAT_WS('@','fuck','you')//指定分隔符数字按照千分位格式化为字符串SELECT FORMAT(234566.1234,2)//保留小数点后2位 234,566.12字符串大小写转化SELECT LOWER('ASDF'

2017-07-02 16:20:47 308

原创 mysql表的增删改查方言

增 mysql除了sql标准的增加,还提供了另外一种增加的方法insert into student set stu_name='xxoo',stu_age=23;这种方式的扩展应用是可以在等号后面加子查询。另外一种增加的方法insert into student select *******;查 1,group by 可以升降序select age fro

2017-07-01 21:56:02 320

原创 mysql中的数据类型

整型 跟java数据类型做比对tinyint bytesmallint shortint intbigint longmediumint 没有对应的java类型 占3个字节浮点型float[(M,D)] M是数字总位数,D是小数点后面的位数。一般采用默认值就可以double[(M,D)] 日期类型year

2017-07-01 13:50:44 303

原创 mysql 多表联合update

mysql 的表要update的时候,有的时候需要第二张表。 比如,要把user表的name字段给设置值,但是这个值在student表。可以这么来update user join student on user.id=student.idset user.name=student.name

2017-06-03 20:52:34 416

转载 将mysql的查询结果保存到文件中

方法一: 直接执行命令:mysql> select count(1) from table into outfile '/tmp/test.xls';这种方法经常遇到权限的问题。很多时候需要去整权限。方法二: 查询都自动写入文件:mysql> pager cat > /tmp/test.txt ;之后的所有查询结果都自动写入/tmp/test.txt’,并前后覆盖 在框口不再显示查询结果方法

2017-06-03 20:34:18 7386

原创 maven java编译环境的设置

<build> <finalName>lagou</finalName> <plugins> <!--用java1.8来编译--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactI

2017-05-26 15:58:43 336

原创 spring boot 中@RestController 注解

spring boot 可以认为是spring mvc 的升级版。 在spring mvc 中,用的是@Controller注解@RestController注解相当于 @Controller与@ResponseBody这两个注解的作用。现在的web开发,大多数都是前后端分离的。所以用@RestController注解会更多。基本上不会用到ModelAndView了。

2017-05-20 22:41:05 4352

原创 spring boot 中配置文件的读取和多环境配置

配置文件中如果配置项很多的话,最好是写一个或者多个配置对象来读取配置。建议使用yml格式来写配置文件。这种格式更加面向对象一点。比如person: name: zhangsan age: 45server: port: 8888 context-path: /xxxcupSize: D注意,冒号后面有个空格,这个是yml格式的要求。@Component("person")@Conf

2017-05-20 22:16:26 1018

原创 spring 异步方法

用注解@Async标注在xsd约束中,要有xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd在spring的xml文件中,要有<

2017-05-11 20:42:52 583

原创 maven jetty插件

<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.7</version> <configuration>

2017-05-08 14:53:49 340

原创 tomcat的访问权限

tomcat的自带应用是有访问权限的。比如manager程序。Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。Tomcat是Java领域使用最广泛的服务器之一,因此Tomcat Manager也成为了使用非常普遍的功能应用。当我们的程序发布到tomcat之后,我们可以用manager来查看这些应用的状态,也可以进行程序的开始

2017-05-07 17:54:50 2811

原创 activemq一台机器起多个实例

在一台机器上面启动多个activemq实例,然后这几个实例通过配置可以变为一个集群。将conf文件整个copy出来,修改activemq.xml文件 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="broker_1">

2017-05-04 19:49:32 2619

原创 activemq的消息持久化存储

Queue的结构很简单,就是一个FIFO的队列。 对于Topic这种,每个consumer会得到一个message队列的复制。对于消息的持久存储,activemq提供了这么几种 1,基于文件的存储,以前默认的存储方式 2,kahaDB消息存储,提供了容量的提升和恢复能力,是现在的默认存储方式。 在kaha中,数据被追加到data logs中。当不再需要log文件中的数据的时候,log文件会被

2017-05-04 19:24:23 381

原创 redis集群

在redis3.0之前,采用哨兵机制来保证高可用。哨兵存在一些问题,比如master挂掉后,哨兵不是立即切换,中间需要一个时间来确认master是不是挂掉了。这个时间内会写入数据失败。在redis3.0之后,出现了集群的概念。很好的解决了哨兵的不足。redis集群需要3个master。如果没有那么多机器的话,那么在一台机器上面启动几个redis实例也是可以的。不过每个机器都要对应一个redis.co

2017-05-02 14:16:11 732

原创 6,redis模拟关系型数据库操作

对于关系型数据库中的表,可以用hash类型 key值为表名称,hash的key为主键,值为一行一行的数据(json)。 对于类似于select语句的where查询,可以在数据插入的时候就建立索引。数据类型为set,key为查询条件,比如age=23。值为hash类型的key值。 使用set作为索引还有一个好处,就是方便做交集并集操作。

2017-05-02 10:33:54 1110

原创 5,jedis连接池

JedisPoolConfig conf = new JedisPoolConfig(); conf.setMaxWaitMillis(3000); conf.setFairness(false); conf.setMaxIdle(5); conf.setMaxTotal(10); JedisPool jedisPool

2017-05-02 00:21:11 282

原创 maven 多配置文件设置

maven项目一般都会有线上环境跟测试环境比如上图所示,单独的一个配置模块。配置文件分为开发环境(dev)跟线上环境(pro)。我们如果是在本机跑程序,跑的字节码文件来自于target/classes文件,需要把dev文件下面的配置文件copy到target/classes文件下(类路径)。 我们如果是要在线上跑程序,需要在本地打jar包。此时jar包中的配置文件要来自pro文件夹下面。为了实现以

2017-05-01 15:50:19 378

原创 4,redis持久化机制

RDB模式,过一段时间给一个数据快照,保存在磁盘上面。 默认是这种模式。save 900 1 #900秒内超过1个key被修改,则发起快照保存save 300 10 #300秒内如果超过10个key被修改,则发起快照保存save 60 10000 #60秒内超过10000个key被修改,则发起快照保存这种方式的弊端也是显而易见的,就是宕机的时候可能会丢数据。在生产环境中,一般用aof方式 r

2017-05-01 15:38:33 252

原创 基本vi操作

1,复制一行yy从当前行开始复制,复制n行n+yy2,粘贴p3,回退一步u4,跳行,快速定位到第n行:set nun+G跳到最后一行:set nuG5,剪切n行,如果剪切1行,1可以省略n+dd6,查找,n是查找下一个的意思,并不是一个数字,应该是next的第一个字母/xxxn

2017-04-29 21:41:48 195

原创 3,redis主从复制跟哨兵机制

意思就是把数据从master复制到slave 目的是实现一个读写分离的机制,master负责写入,slave负责读 1,一个master可以拥有多个slave 2, slave不光可以连接到master,还可以连接到其他的slave(很少这么干,一般是一主多从) 3,在进行主从复制的时候,不影响master跟client进行交互。也就是说master在任何时候都是不阻塞的。主从复制过程 1

2017-04-29 20:45:17 306

原创 2,redis的配置文件简介

# Redis 配置文件# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)## 1k =>1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb =>1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1

2017-04-29 18:41:01 253

原创 1,redis单节点的安装

redis是源码包安装,所以在安装之前要确定机器已经安装了gcc。解压之后,会发现已经存在了MakeFile文件,直接运行make命令,会在src目录中,得到几个文件。如redis-cli,redis-server等等。将这几个文件copy到自己所建的一个工作目录(redis.conf也要copy进来),可以直接运行redis-server redis.conf 来启动redis。此时单节点就创建了

2017-04-29 16:47:07 329

原创 linux jar包启动脚本

#!/bin/bash#java env#shell脚本有时候调用linux的环境变量会有问题,所以这里还是把用到的java环境再设置一下export JAVA_HOME=/usr/local/jdk1.7#app name 为了确保脚本通用APP_NAME=lagou-serviceSERVICE_DIR=/home/lagou/$APP_NAMESERVICE_NAME=lagou-se

2017-04-27 15:47:42 5088

原创 dubbo服务的启动方式

有三种启动方式1,tomcat等servlet容器启动(不建议,因为会使的系统更复杂,而且增加内存的消耗)2,自定义main函数启动(不建议,可能会出现一些未知问题,比如不能优雅关机,导致数据丢失)3,使用dubbo提供的main函数启动建议使用这种方式。可以优雅的关机。对于服务端来说,不再接受新的请求,依然处理老请求,直到结果返回或者超时。对于消费端来说,不再发送新的请求,但是依

2017-04-27 08:52:51 1124

原创 maven 打fat包

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> <configuration>

2017-04-19 15:40:01 872

原创 j2ee规范

在说javaweb规范之前,先要来认识一下j2ee规范 j2ee是sun公司为了java的企业级应用而制定的一套规范。注意,企业级应用不是指web应用,web应用只是企业级应用的一部分。J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):

2017-04-18 09:03:56 593

原创 使用spring来开发jms

spring消息发送的核心架构是JmsTemplate,隔离了像打开,关闭Session和Producer的繁琐操作,因此应用开发人员仅仅需要关注实际的业务逻辑。不建议使用JmsTemplate的receive()调用,因为在JmsTemplate上的所有调用都是同步的,这意味着调用线程需要被阻塞,直到方法返回,这对性能影响很大。建议使用监听器来做消息的接收,这个是异步的。 具体是使用Defalu

2017-04-17 00:57:33 220

原创 activemq消费者过滤器

消息过滤器基于sql的语法。producer部分代码MapMessage message1 = session.createMapMessage(); message1.setIntProperty("age",32); message1.setString("name", "张三"); message1.setInt("age", 32);

2017-04-16 20:17:26 522

原创 ActiveMq持久订阅小例子

public class ProducerTopic { public static void main(String[] args) throws JMSException { String user = ActiveMQConnectionFactory.DEFAULT_USER; String password = ActiveMQConnectionF

2017-04-16 11:45:25 241

原创 jms简介

jms是j2ee的一门技术,j2ee是一个包含20多门技术的总和。jms定义了java中访问消息中间件的接口。并没有给予实现。将实现了jms接口的中间件叫做jms provider,比如activemaq.jms消息分为三部分 1,消息头:每个消息头字段都有相应的get和set方法 2,消息属性:如果需要除消息头字段以外的值,可以用消息属性 3,消息体:封装具体的消息jms producer

2017-04-15 13:59:23 518

原创 netty学习笔记(5)_心跳机制

举个例子,在负载均衡中,用心跳机制收集的客户端信息,决定连哪一台机器去做运算。

2017-04-14 22:38:29 212

转载 sigar API简介

使用时需要把对应的操作系统的脚本放到java安装包的bin目录下。举个例子package com.suosong.sigar;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Map;import java.util.Properties;import org.hyperic.si

2017-04-14 20:50:09 5325 3

空空如也

空空如也

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

TA关注的人

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