自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 MapStruct 详解

GitHub 访问地址 : https://github.com/mapstruct/mapstruct/ 使用例子 : https://github.com/mapstruct/mapstruct-examples   MapStrcut与其它工具对比以及使用说明 : http://www...

2018-10-27 13:18:07 11304 0

原创 分布式重建缓存的并发冲突 详解

在分布式系统中,如果缓存服务在本地的 Ehcache 中都读取不到数据,此时需要重新到源头的服务中去拉去数据,拉取到数据之后,赶紧先给 Nginx 的请求返回,同时将数据写入 Ehcache 和 Redis中。此时会出现分布式重建缓存的并发冲突问题重建缓存 : 比如数据在所有的缓存中都不存在 (如...

2018-05-29 21:53:46 813 0

原创 热备份、温备份、冷备份 详解

按备份系统的准备程度,可将其分为 冷备份、温备份和热备份三大类 :1> 冷备份 : 备份系统未安装或未配置成与当前使用的系统相同或相似的运行环境,应用系统数据没有及时装入备份系统。一旦发生灾难,需安装配置所需的运行环境,用数据备份介质(磁带或光盘) 恢复应用数据,手工逐笔或自动批量追...

2018-05-29 21:52:23 8146 0

原创 Nginx+Lua 从Nginx和Redis缓存获取数据案例 详解

在 Nginx、Redis、Ehcache 三级缓存中,Nginx 分发层 和 应用层。在分发层 Nginx,通过 Lua,将商品id、商品店铺id,都转发到后端的应用nginx可以通过 Nginx 指令重新加载所有配置包括 Lua 脚本# /opt/modules/openresty/nginx...

2018-05-13 18:46:02 2481 2

原创 Nginx+Lua 定制流量分发策略案例

准备3台机器 eshop-cache01、eshop-cache02、eshop-cache03,用 eshop-cache01 和 eshop-cache02 作为应用层 Nginx服务器,用 eshop-cache03 作为分发层 Nginx。在 eshop-cache03,也就是分发层 Ng...

2018-05-13 18:45:29 1692 0

原创 OpenResty 基础知识 和 Linux部署 详解

OpenResty (又称 : ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,可以使用 Lua脚本语言 调动 Nginx 支持的各种 C 以及 Lua 模块,OpenResty 性能优异。OpenResty 可以快速构造出 1W+ 并发连接响应的超高性能 Web ...

2018-05-13 18:44:23 886 0

原创 Nginx+Lua 开发的 hello world 案例 详解

编辑 Nginx 配置文件# cd /opt/modules/openresty/nginx/conf# cp nginx.conf nginx.conf.example    # 备份 nginx.conf 文件# vi nginx.confworker_processes  1;events ...

2018-05-13 18:43:51 1475 0

原创 SpringBoot @ConfigurationProperties参数绑定 详解

1> 引入 spring-boot-configuration-processor 库<dependency>    <groupId>org.springframework.boot</groupId&g...

2018-05-09 16:13:29 7116 0

原创 Linux 后台执行命令 详解

当在终端或控制台工作时,可能不希望由于运行一个作业而占住屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用 :方法1> &...

2018-05-03 09:53:12 604 0

原创 Java 产生随机数 详解

Math.random() 方法可以随机生成一个 [0, 1) 直接的数,包括 0,不包括 1生成 0 到 10 之间的整数# 使用 Math.round(Math.random() * 10))ExecutorService executorService = Executors.newFixe...

2018-04-28 14:39:08 189 0

原创 JVM 命令参数 详解

JVM 启动时会带有很多的启动参数,Java命令本身就是一个多参数的启动命令java 启动命令java [options] classname [args]java [options] -jar filename [args]命令参数一下为 Java8 参数设置1> 标准参数 (St...

2018-04-28 14:38:47 199 0

原创 Oracle 基础知识 详解

DDL : 数据库模式定义语言,关键字:createDML : 数据操纵语言,关键字:Insert、delete、updateDCL : 数据库控制语言 ,关键字:grant、removeDQL : 数据库查询语言,关键字:select结构化查询语言 (Structured Query Langu...

2018-03-27 11:07:06 6411 0

原创 Java 创建对象以及类加载 详解

java 创建对象有多种方式 :方式1> new方式2> 使用 Object 的 clone 方法    <1> 实现 clone类 首先实现 Cloneble接口,Cloneable接口 实质上是一个标识接口 类似于 Serializabl...

2018-03-26 08:31:00 386 0

原创 JavaScript 闭包 详解

闭包 : 闭包就是一个函数引用另外一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量当内部函数在定义它的作用域的数据外部被引用时,就创建了该内部函数的闭包,如果内部函数引用了位于外部函数的变量,当外部函数调用完毕后,这些变量在内存不会被释放,因为闭包需要它们变量的作用域 ...

2018-03-26 08:30:55 168 0

原创 MySQL 循环方法 while loop repeat 详解

存储过程中使用到的循环while 循环 :# 语法while 条件 do  循环体;end while;# 创建自定函数使用 while 循环mysql> DELIMITER ;;    -> CREATE PROCEDURE sum1(a INT)    -&...

2018-03-25 13:44:34 3438 0

原创 MyCat 注解 详解

MyCat 对自身不支持的 SQL 语句提供一种解决方案——在要执行的 SQL 语句前添加额外的一段由注解。SQL 组织的代码,这样 SQL 就能正确执行,这段代码称之为“注解”。注解的使用相当于对 MyCat 不支持的 SQL 语句做一层透明代理转发,直接交给目标的数据节点进行 SQL 语句执行...

2018-03-25 12:26:33 894 0

原创 Mycat-Web 使用 详解

1> Mycat eye 需要 Zookeeper 作为配置中心,因此搭建一个 Zookeeper2> Mycat eye 环境部署下载 Mycat-Web : GitHub https://github.com/MyCATApache/Mycat-download/t...

2018-03-25 12:12:31 2366 0

原创 MySQL IS NOT NULL、!=NULL、ISNULL() 详解

NULL 表示什么也不是,不能 =、>、< … 所有的判断,结果都是false,所有只能用 IS NULL 进行判断默认情况下,推荐使用 IS NOT NULL去判断,因为 SQL 默认情况下对 !=NULL 的判断会永远返回 0 行,但没有语法错误如果一定想要使用 !...

2018-03-25 11:20:53 13470 0

原创 MySQL 创建定时任务 详解

自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由操作系统的计划任务来执行的工作。事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些...

2018-03-25 11:20:46 10563 0

原创 MySQL show 详解

1> show tables 或 show tables from database_name : 显示当前数据库中所有表的名称mysql> show tables;+----------------+| Tables_in_test |+---------------...

2018-03-25 11:20:36 524 0

原创 MySQL 查看语句运行时间 详解

方法1> 使用 show profiles 进行查看# 查看 profile 是不是打开的,默认是不打开mysql> show variables like "%pro%";+-------------------------------------...

2018-03-25 11:20:25 1267 0

原创 MySQL CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 详解

1> CURRENT_TIMESTAMP : 当要向数据库执行 insert操作时,如果有个 timestamp字段属性设为 CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间2> ON UPDATE CURRENT_TIMESTAMP ...

2018-03-25 11:20:18 10208 0

原创 Linux 下安装 MyCat 详解

官方网站 : http://www.mycat.io/注 : 在 Mycat 文件的目录中,bin目录 存放在 Mycat 的执行文件;conf目录 存放 Mycat 的配置文件;lib目录存放 Mycat所依赖的 jar包;logs目录存放 Mycat运行时所产生的日志文件;version.tx...

2018-03-25 11:20:11 133 0

原创 MySQL 分支版本对比 详解

产品价格目标主要功能是否可投入生产Percona Server免费提供 XtraDB 存储引擎的包装器和其他分析工具XtraDB是MariaDB免费扩展 MySQL 以包含 XtraDB 和其他性能改进XtraDB是Drizzle免费提供比 MySQL 更强大的可扩展性和性能改进高可用是Perco...

2018-03-25 11:19:59 1222 0

原创 MySQL 架构及优化原理 详解

MySQL逻辑架构MySQL逻辑架构整体分为三层 :1> 客户端 : 并非MySQL所独有,诸如 : 连接处理、授权认证、安全等功能均在这一层处理2> 核心服务 : 包括查询解析、分析、优化、缓存、内置函数(比如 : 时间、数学、加密等函数),所有的跨存储引擎的功能也在...

2018-03-24 13:17:27 5538 2

原创 MySQL 执行计划 详解

开启 profile 工具mysql> SHOW VARIABLES LIKE '%profil%';+------------------------+-------+| Variable_name          | Value |+------------...

2018-03-24 13:12:40 114 0

原创 MySQL insert ignore into、replace into、insert into、on duplicate key update 详解

创建测试表mysql> CREATE TABLE books(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) UNIQUE,remark VARCHAR(100));mysql> INSERT INTO books(...

2018-03-24 13:11:16 393 0

原创 MySQL 索引 详解

用于快速查询数据库表中的数据优点 : 提高检索数据的速度缺点 : 索引需要占用物理空间,因此在增加、删除、修改数据时会造成维护速度降低MySQL 种索引类型1> 普通索引 : CREATE INDEX index_name ON table(column(length))2&...

2018-03-24 13:08:45 241 0

原创 Docker 搭建 MySQL 详解

1> 获取镜像 : 直接从 Docker Hub 上拉取 MySQL在 Docker Hub 或者 Docker Store 上搜索 MySQL 官方版使用相应的 pull 指令拉取 MySQL 镜像$ docker pull mysql2> 创建数据和日志目录,以及 ...

2018-03-24 12:45:28 847 0

原创 MySQL count(1) count(*) 比较 详解

count(*) 将返回表格中所有存在的行的总数包括值为 null 的行,然而 count(列名) 将返回表格中除去 null 以外的所有行的总数 (有默认值的列也会被计入),这点对于所有数据的 COUNT 计算都是一样的count(1) 与 count(*) 比较 :1> 如果数据...

2018-03-24 12:44:31 12637 2

原创 MySQL 数据库设计规范 详解

1> 数据库涉及字符规范采用 26 个英文字母(区分大小写) 和 0-9 这十个自然数,加上下划线'_'组成,共 63 个字符,不能出现其他字符(注释除外)注 : 1> 以上命名都不得超过 30 个字符的系统限制,变量名的长度限制为 29(不包括标识...

2018-03-24 12:33:10 581 0

原创 MySQL 5.7 时间不兼容问题 详解

MySQL 中 datetime, timestamp, date 的区别日期类型存储空间日志格式日期范围datetime8 bytesYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:59timestamp4 bytesYYYY-...

2018-03-24 12:11:00 5119 0

原创 MySQL 清空表(truncate)与删除表中数据(delete) 详解

删除表信息的方式有两种 :truncate table table_name;delete * from table_name;注 : truncate操作中的table可以省略,delete操作中的*可以省略truncate、delete 清空表数据的区别 :1> truncate...

2018-03-24 11:54:24 28345 1

原创 MySQL 压缩 详解

MySQL 压缩协议适合的场景是 MySQL 的服务器端和客户端之间传输的数据量很大,或者可用带宽不高的情况,典型的场景有如下两个 :1> 查询大量的数据,带宽不够(比如导出数据的时候)2> 复制的时候 binlog 量太大,启用 slave_compressed_pr...

2018-03-24 10:03:53 2937 0

原创 MySQL 数据备份和还原 详解

1> 数据库备份,在 MySQL 的 bin目录下,有一个名为 mysqldump 的可执行文件,将该 bin 目录添加到环境变量中,可以利用它在 "命令提示符" 环境下来备份数据库,mysqldump命令的工作原理是先查出需要备份的表的结构,再在文本中生成一个 ...

2018-03-23 22:56:12 84 0

原创 Zsh 详解

Zsh 官网 : https://www.zsh.org/oh-my-Zsh 官网 : http://ohmyz.sh/Zsh 和 oh-my-Zsh 的关系Zsh 是 Shell 中的一种,什么 Shell 你可以再搜索下,简单粗暴讲就是一个:命令解释器,你输入什么命令,它就执行什么,这个东西再...

2018-03-23 22:14:26 441 0

原创 MyCat SQL拦截机制 详解

SQL 拦截是一个比较有用的高级技巧,用户可以写一个 java 类,将传入 MyCat 的 SQL 进行改写然后交给 MyCat 去执行,此技巧可以完成如下一些特殊功能 :1> 捕获和记录某些特殊的 SQL2> 记录 SQL 查找异常3> 出于性能优化的考...

2018-03-23 22:02:26 1022 0

原创 MyCat 对存储过程

从 MyCat1.6 版本开始完整支持 MySQL 和 Oracle 的存储过程,调用原理需要使用注解,把存储过程的调用当做普通 SQL 来调用注 : 在程序中别用以前存储过程的调用方式,要按照普通查询 sql 的调用方式,返回结果从 resultset 里取完美支持以下三种情况 :1&g...

2018-03-23 10:05:16 3079 0

原创 MySQL 排它锁 详解

Mysql InnoDB 排他锁用法 : select … for update;例如 : select * from goods where id = 1 for update;排他锁的申请前提 : 没有线程对该结果集中的任何行数据使用排他锁或共享锁,否则申请会阻塞for update 仅适用于...

2018-03-22 23:39:31 4566 0

原创 MyCat 压缩 详解

MyCat 从 1.4 开始支持 MySQL 的压缩协议,在查询返回大的结果集和 load data 大量数据的性能提升比较明显。可以大大节省网络流量,但会消耗少量 CPU 资源。如果要启用压缩协议,则客户端、MyCat、MySQL 三者都启用才行MyCat 可以在 server.xml 中配置 ...

2018-03-22 23:33:50 198 0

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