- 博客(40)
- 资源 (14)
- 问答 (1)
- 收藏
- 关注
原创 安装 SQL智能优化与改写工具--小米SOAR
1、SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能优化与改写工具,由小米运维 DBA 团队出品,于今日正式宣布开源。SOAR 主要由语法解析器、集成环境、优化建议、重写逻辑、工具集五大模块组成,相比业内其他优秀产品有自己的优势。功能特性: 1. 跨平台支持(支持 Linux、Mac 环境,Windows 环境理论上也支持,不过未全面测试) ...
2019-03-30 08:21:26
1532
原创 java简单的抽奖算法,抽奖Demo
最近公司为促销会员充值,搞了一个充值抽奖活动。开发活动对抽奖的算法有些拙见,希望对大家有些帮助。也希望有更好算法的大神不吝赐教。1、理论:...
2019-03-26 09:50:27
6180
3
原创 10分钟教你搭建自己的ngrok服务器
内网穿透想必开发过微信的同志都很了解,大部分人选择网上寻找各种现成的,比如ngrok官网、ittun-ngrok、sunny-ngrok或者花生壳之类的。但是世界上没有免费的午餐,要不就是收费,要不就是免费但是偶尔会出现连接失败的问题(当然大多数时间是没有问题的)。偶然,正在测试微信的某些功能,但是正在使用的ittun-ngrok连接失败了。导致测试无法进行,最终萌生出自己搭建一个ngrok服...
2018-02-23 15:32:32
171431
42
原创 WebSocket的两种简单实现,Html5与STOMP。
WebSocket 是通过一个socket来实现双工异步通信的功能,即浏览器可以向服务端发送消息,服务端也可以向浏览器发送消息。但是直接使用WebSocket 或者SocketJs(WebSocket协议的模拟),增加了当浏览器不支持WebSocket的时候的兼容支持。本文以HTML5规范中的WebSocket API、WebSocket的子协议STOMP作为演示。STOMP是一个更高级的协议,它使
2017-12-18 13:45:00
10682
原创 JAVA实时监控目录下文件的变化
一、commons-io方法1、使用Commons-io的monitor下的相关类可以处理对文件进行监控,它采用的是观察者模式来实现的(1)可以监控文件夹的创建、删除和修改(2)可以监控文件的创建、删除和修改(3)采用的是观察者模式来实现的(4)采用线程去定时去刷新检测文件的变化情况2、引入commons-io包,需要2.0以上。<!-- https://mvnrepository.com/
2017-12-16 14:57:06
25994
11
原创 Spring之条件注解@Conditional,条件(系统)不同注入的对象也不同。
条件注解,可以根据不同的条件来做出不同的事情。在Spring中条件注解可以说是设计模式中状态模式的一种体现方式,同时也是面向对象编程中多态的应用部分。在Spring框架中,当我们使用条件注解时,我们会为每种独立的条件创建一个类,根据这个类对应的条件的成立情况我们来选择不同的任务来执行。当然我们在声明任务时,一般使用接口来声明。因为我们会在Spring的配置类中指定具体条件下的具体类。接下来,我们将来
2017-12-14 21:52:25
14827
原创 java8,你应该了解的新特性(新时间与日期API)
1、使用 LocalDate 、LocalTime 、LocalDateTimeLocalDate、LocalTime、LocalDateTime 类的实例是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。它们提供 了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。注:ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法2、I
2017-09-16 16:09:30
470
原创 java8,你应该了解的新特性(空指针终结者:Optional 类)
1、java.lang.NullPointerException是最常见也是最令人讨厌的一种异常,如果一个对象可能为null,在调用其方法之前必须进行非空检查,否则就会引发java.lang.NullPointerException。但是,很多对象永远都不会为null,如果能把那些可能为null的对象明确的标识出来,只对null嫌疑者进行判断,岂不是既可避免java.lang.NullPointer
2017-09-16 11:04:38
2283
原创 java8,你应该了解的新特性(并行流优化篇)
1、并行流 就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块的流。Java 8 中将并行进行了优化,我们可以很容易的对数据进行并行操作。Stream API 可以声明性地通过 parallel() 与sequential() 在并行流与顺序流之间进行切换。2、Fork/Join 框架,就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小
2017-09-15 18:34:23
1426
1
原创 java8,你应该了解的新特性(Stream API篇)
1、新特性简介(1)速度更快 (2)代码更少(增加了新的语法Lambda表达式) (3)强大的Stream API (4)便于并行 (5)最大化减少了空指针异常Optional其中最为核心的为 Lambda 表达式与Stream API2、了解Stream APIStream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等
2017-09-14 16:58:12
397
原创 java8,你应该了解的新特性(Lambda篇)
1、新特性简介(1)速度更快(2)代码更少(增加了新的语法Lambda表达式)(3)强大的Stream API(4)便于并行(5)最大化减少了空指针异常Optional其中最为核心的为 Lambda 表达式与Stream API2、Lambda 是一个 匿名函数,我们可以把 Lambda表达式理解为是 一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更
2017-09-13 17:26:24
265
原创 阿里云主机配置
1、修改主机名vim /etc/hostname,编辑文件设置永久主机名,重启后生效。2、更改数据源参考:http://blog.csdn.net/yjc_1111/article/details/531979833、修改SSH登录端口(安全措施,可忽略)vim /etc/ssh/sshd_config,修改文件中的Post为其他端口。4、安装java,以jdk8为例。
2017-09-12 18:15:20
970
原创 Redis复制,事故情况分析
1、概念主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。2、能做什么(1)读写分离(2)容灾恢复3、复制原理(1)slave启动成功连接到master后会发送一个sync命令;(2)Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到sl
2017-09-07 18:05:12
290
原创 Redis常用命令总结
1、启动(1)查询Redis是否启动ps -ef|grep redis(2)启动Redisredis-server redis.conf(3)连接redis-cli -p 6379(4)测试,发送ping,如果连接正常就返回一个 PONG ,否则返回一个连接错误。 2、字符串(1)set/get/del/append/strlen:设置、获取、删除、拼接、长度;(2)Incr/decr/
2017-09-05 15:56:31
351
原创 MySql学习之主从复制
1、复制的基本原理 (1)master将改变记录到二进制日志(binary log)中。这些记录过程叫做二进制日志事件(binary log events)。(2)slave将master的binary log events拷贝到它的中继日志(relay log)中。(3)slave重做中继日志中的事件,将改变应用到自己的数据库中。MySql复制是异步的且串行化的。2、复制的基本原则(1)每
2017-09-04 17:54:30
319
原创 MySql学习之索引优化
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。 1、全值匹配 在创建索引时,查询(排序)字段的个数和索引个数相匹配为最佳。 2、最佳左前缀法则:查询从索引的最左前列开始并且不跳过索引中的列。 3、不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),否则会导致索引失效而转向全表扫描。 4、储存引擎不能使用索引中范围条件右边的列,即当where
2017-08-28 15:21:48
286
原创 MySql学习之性能分析Explain使用
1、MySql Query Optimizer 查询优化器MySql中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(他认为最优的数据检索方式,但是不见得是DBA认为是最优的,这部分最消耗时间)。当客户端向MySql请求一条Query,命令解析器模块完成请求分类,区别出是SELECT并转发给MySql Qu
2017-08-26 12:47:53
253
原创 Mysql学习之索引介绍及其原理
1、索引的分类(1)单值索引:即一个索引只包含单个列,一个表可以有多个单值索引。(2)唯一索引:索引列的值必须唯一,但是允许有空值。(3)复合索引:即一个索引包含多个列。2、语法(1)创建CREATE [UNIQUE] INDEX indexName ON mytable(columnname(length));或ALTER mytable ADD [UNIQUE] INDEX [ind
2017-08-25 17:50:47
272
原创 Redis学习之redis.conf 配置项说明
参数说明 redis.conf 配置项说明如下: 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid 3. 指定Redis监
2017-08-08 18:50:52
284
原创 利用Jsoup创建属于自己的信息库
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 今天小杨就以糗事百科(http://www.qiushibaike.com/)为例,爬一爬糗事百科首页的小笑话。创建一个本地的笑话库。 1、首先下载相关的jar包,jsoup.jar。目前最新版本是1.10
2017-01-13 16:38:24
366
转载 正式运行的服务器,你都做过哪些优化
今日突然心血来潮用站长工具检测自己的网站,蓦然发现网站有很多需要改进的地方。也许以前做网站只注重结果而忽略了细节,做了网站后才发现有这么多技术外的学问。 今晚就跟大家探索一下将服务器开启Gzip压缩。 所谓的Gzip就是一种压缩格式。它在网络上的工作原理通俗说法就是客户端向服务器发送请求,而服务器将请求结果经过压缩后再返回到客户端,这样做的效果就是使返回的数据较不处理的数据更小,返回到客户端的时
2017-01-10 20:02:35
514
原创 阿里云OSS,搭建自己的云储存
目前,对于互联网的疯狂发展,数据储存成为了大多数个人或小公司的瓶颈。由于服务器的磁盘空间不是很大、宽带也不是很充足。储存网站的内容成为了一笔较大的开销。尤其是有下载、视频、音乐等业务的网站来说,那更是一笔庞大的开销。 较比之前,我们可以通过各大厂商提供的网络云盘进行数据的储备。但是进来由于国家的某些政策,各大厂商纷纷关闭了网盘服务。目前也就百度云还能正常使用,但是受限很大。 因此我们迫切的需要一
2017-01-09 17:51:39
19443
3
原创 原来Spring定时器可以这样注入service
近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。1、定时器的配置(注意配图中beans里面,要有相关的引用)原来Spring定时器可以这样注入service----------------------------------------xmlns:t
2017-01-08 17:33:30
2874
1
原创 Hadoop本地开发,9000端口拒绝访问
最近在学习Hadoop,忙了好几天,终于学会了Hadoop的分布式部署。可是在MyEclipse开发中,总是无法远程连接到Hadoop集群的9000端口。今天终于明白哪里配置错误了,在这分享给大家。希望对大家有用。 1、环境说明 hadoop-2.7.3 jdk1.8.0_112 阿里云 Ubuntu 14.04 64位2、在配置文件是我配置的是9000端口。 3、MyEclipse连接9
2016-12-22 17:51:58
51853
26
原创 win10中,内置linux系统的安装(开启)和体验
windows系统和linux系统一直是水火不容,而在最新的win10系统却完美兼容了linux系统,但是在默认情况下是关闭的,需要我们手动来启动。 1、更新至最新的win10版本。 2、开启开发者模式,设置— 更新与安全— 针对开发人员— 勾选开发人员模式。 3、开启windows功能,打开控制面板 ->卸载程序->启用或关闭windows功能->适用于Linux的windows子系统。选中
2016-12-14 17:53:34
24019
原创 Hadoop启动停止的三种方式
(1)分别启动HDFS和MapReduce,命令如下: 启动: start-dfs.sh start-mapred.sh 停止: stop-mapred.sh stop-dfs.sh (2)全部启动或停止 启动: start-all.sh 启动顺序: NameNode->DataNode->Seco
2016-12-06 15:00:11
4023
原创 Hadoop配置伪分布式模式
1、Hadoop有三种配置模式,分别为独立模式、伪分布式模式、分布式模式。 独立模式:即本地模式,该模式没有运行的守护程序,所有的程序运行在一个jvm中。适合开发期间运行MapReduce程序,源于他的易于测试和调试。 伪分布式模式:守护程序运行在本地主机,模拟一个小规模集群。 分布式模式:守护程序运行在多个主机的集群上。 2、安装SSH、配置SSH无密码登陆。 在
2016-11-21 14:09:39
782
原创 Ubuntu更改数据源
Ubuntu更新数据源 1、备份原来的源文件,要养成良好的习惯。 sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup 2、编辑新源文件 sudo gedit /etc/apt/sources.list 将之前的源全部删除然后加入新源,可选择以下:163deb http://mirrors.163.com/ubuntu/ t
2016-11-17 11:37:58
5658
2
原创 Java的递归算法
1、定义 程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需
2016-11-08 15:55:26
353
原创 个人电脑变成服务器,使用ngrok将本地Web服务映射到外网
1、什么是ngrok。 ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。 2、为什么要使用ngrok。 作为一个Web开发者,我们有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试等等,通常我们会这么做: 找到一台运行于外网的Web服务器 服务器上有网站
2016-11-08 13:31:01
7941
3
原创 java:Excel操作之Excel下载导出
1、下载所需要的jar包 2、创建servlet命名为DownloadServlet,请求url为DownloadServlet;public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
2016-11-06 21:25:42
485
原创 java:Excel操作之Excel上传导入
1、导入我们需要的jar包。 2、创建servlet命名为UploadExcelServlet,url为UploadExcelServlet。package com.mhss.servlet;import java.io.File;import java.io.IOException;import java.util.Date;import java.util.List;import j
2016-11-06 17:16:29
1430
原创 Lucene索引的简单使用
马上就要面临双11了,淘宝有一次拉起了促销的热潮。然而又有谁注意到,在我们进入淘宝搜索自己需要的商品时,基本上是那么的准确无误。本次我们讲解一下如何通过Lucene简单的实现淘宝搜索功能。 1、简介 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引
2016-11-03 17:51:04
409
原创 图形报表之jQuery HighchartTable基础入门
(一)关于(About)1、简介HighchartsTable是一款基于jQuery编写的HTML表格转换Highcharts图表的插件。利用它,你只需要关注HTML表格配置即可创建Highcharts图表!2、运行原理HighchartsTable利用HTML5 的 data-* 属性来指定图表渲染选项。3、浏览器兼容性HighchartsTable兼容目前主流浏览器,包括 :注意:jQuer
2016-11-02 17:28:05
2038
原创 java发送Email邮件
JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。 本次以QQ邮箱为例。1、开通邮箱的stmp功能,获取授权码,在登录时所用到的密码就是此授权码。2、下载我们所需要的jar包,mailapi.jar和smtp.jar。
2016-11-01 21:03:59
695
原创 java验证码生成(二)
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是
2016-11-01 11:38:26
868
原创 java验证码生成(一)
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是
2016-10-31 15:07:48
424
原创 QRCode二维码生成
java有很多生成二维码的方式,这里介绍一下用qrcode生成的代码。1、先去下载QRCode要用到的jar包2、废话不说了,直接贴源代码,此处采用原生的servlet处理页面发送过来的请求,请求地址QRCodeServlet。public void doGet(HttpServletRequest request, HttpServletResponse response)throws Ser
2016-10-29 20:04:34
1444
原创 Maven学习(一)搭建Maven环境
安装 Maven 之前要求先确定你的 JDK 已经安装配置完成。Maven是 Apache 下的一个项目,目前我的新版本是 3.0.4,我用的也是这个。1.首先去官网下载 Maven:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.4-bin.tar.gz 2.配置 maven 环境变量: 系统变量:M
2016-10-28 10:35:41
257
服务器峰值和性能预估、计算方法和服务器部署架构
2015-05-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人