- 博客(60)
- 收藏
- 关注
转载 Go 逃逸分析
Go 逃逸分析堆和栈要理解什么是逃逸分析会涉及堆和栈的一些基本知识,如果忘记的同学我们可以简单的回顾一下:堆(Heap):一般来讲是人为手动进行管理,手动申请、分配、释放。堆适合不可预知大小的内存分配,这也意味着为此付出的代价是分配速度较慢,而且会形成内存碎片。栈(Stack):由编译器进行管理,自动申请、分配、释放。一般不会太大,因此栈的分配和回收速度非...
2019-07-14 16:23:00
230
转载 ElasticSearch 连载二 中文分词
ElasticSearch 连载二 中文分词上一章ElasticSearch 连载一 基础入门 对Elastic的概念、安装以及基础操作进行了介绍。那是不是有童鞋会有以下几个问题呢?什么是中文分词器?分词器怎么安装?如何使用中文分词器?那么接下来就为大家细细道来。什么是中文分词器搜索引擎的核心是 倒排索引 而倒排索引的基础就...
2019-07-04 00:54:00
202
转载 ElasticSearch 连载一 基础入门
ElasticSearch简写ES,ES是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。应用场景我们常见的商城商品的搜索日志分析系统(ELK)基于大量数据(数千万的数据)需要快速调查、分析并且并将结果可视化的业务需求安装并运行ESJava环境安装Elastic 需要 Java 8 环境。如果你的机器还没安装Jav...
2019-06-28 11:15:00
205
转载 基于GitLab CI搭建Golang自动构建环境
基于GitLab CI搭建Golang自动构建环境Golang发布遇到的问题对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程:方案一开发者本地环境需要将环境变量文件改为正式环境配置编译成可执行文件发送给运维(运维)将文件覆盖为线上(运维)重启进程(可谓“又臭又长”)方案二...
2019-06-19 16:05:00
492
转载 Go 性能分析之案例一
思考相信大家在实际的项目开发中会遇到这么一个事,有的程序员写的代码不仅bug少,而且性能高;而有的程序员写的代码能否流畅的跑起来,都是一个很大问题。而我们今天要讨论的就是一个关于性能优化的案例分析。案例分析我们先来构造一些基础数据(长度为10亿的切片,并赋上值):var testData = GenerateData()// generate billion ...
2019-06-17 14:47:00
123
转载 MySQL InnoDB 行记录格式(ROW_FORMAT)
MySQL InnoDB 行记录格式(ROW_FORMAT)一、行记录格式的分类和介绍在早期的InnoDB版本中,由于文件格式只有一种,因此不需要为此文件格式命名。随着InnoDB引擎的发展,开发出了不兼容早期版本的新文件格式,用于支持新的功能。为了在升级和降级情况下帮助管理系统的兼容性,以及运行不同的MySQL版本,InnoDB开始使用命名的文件格式。1. Antelo...
2018-08-08 14:31:00
571
转载 MySQL InnoDB 逻辑存储结构
MySQL InnoDB 逻辑存储结构从InnoDB存储引擎的逻辑结构看,所有数据都被逻辑地存放在一个空间内,称为表空间,而表空间由段(sengment)、区(extent)、页(page)组成。ps:页在一些文档中又称块(block)。InnoDB存储引擎的逻辑存储结构大致如下: 一、表空间(table space)表空间分为了两种,这里简单的概括一下:1...
2018-08-06 12:04:00
327
转载 MySQL InnoDB 索引组织表 & 主键作用
InnoDB 索引组织表一、索引组织表定义在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table IOT)。在InnoDB存储引擎中,每张表都有个主键(Primary key),如果在创建表时没有地定义主键,则InnoDB存储引擎会选择表中符合条件的列去创建主键。条件:1. 首先判断表中是否...
2018-08-04 17:28:00
172
转载 Innodb Double Write
Innodb Double Write 如果说ibuf带给InnoDB存储引擎的是性能上的提升,那么doublewrite(两次写)带来的则是数据页的可靠性。 InnoDB的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。我们知道磁盘在写入时,都是以512字节为单位,不能保证MySQL...
2018-07-25 23:04:00
111
转载 Laravel 5.6: Specified key was too long error
Laravel 5.6: Specified key was too long error在Laravel执行以下命令:php artisan migrate这是由于Laravel5.6设置了数据库默认编码,现在的编码默认为“utf8mb4”(支持emoji),开始查看了官网是这么说的:“applications and as long as you...
2018-07-23 16:44:00
93
转载 InnoDB Insert Buffer(插入缓冲)
InnoDB Insert Buffer(插入缓冲)每个存储存储引擎自身都有自己的特性(决定性能以及更高可靠性),而InnoDB的关键特性有:插入缓冲(Insert Buffer)--》Change Buffer两次写(Double Write)自适应哈希索引(Adaptive Hash Page)异步IO(Async IO)刷新邻接页(Flush Neigh...
2018-07-22 21:29:00
151
转载 LDAP概念和原理介绍
LDAP概念和原理介绍相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从“什么是LDAP”、“LDAP的主要产品”、“LDAP的基本模型”、“LDAP的使用案例”四个方面来做一个介绍。我们在开始介绍之前先来看几个问题:1.我们日常的办公系统是不是有多个?2.每个系统之间是不是都有独立的账号密码?3.密...
2018-06-12 17:50:00
1330
转载 PHP LDAP 目录协议函数库
在 LDAP 的协议之中,很像硬盘目录结构或倒过来的树状结构。LDAP 的根就是全世界,第一级是属于国别 (countries) 性质的层级,之后可能会有公司 (organization) 的层级,接着是部门 (organizationalUnit),再来为个人。而就像文件,每个人都会有所谓的显名 (distinguished name, 简称 dn),dn 可能像酱子 cn=Joh...
2018-06-08 10:01:00
337
转载 shell脚本执行错误 $'\r':command not found
shell脚本执行错误 $'\r':command not foundLinux下有命令dos2unix可以用一下命令测试vi -b filename我们只要输入dos2unix *.sh就可以完成转换工作了如果命令不存在的话就用如下命令安装yum install dos2unix -y转载于:https://www.cnblogs...
2018-06-07 14:43:00
90
转载 Microsoft Windows Server 2012 Ad域搭建
Microsoft Windows Server 2012 Ad域搭建一、Active Directory概念AD(活动目录):是一种组织资源信息的方法,目录的意义在于我们可以通过标题或者说搜索条件来简单而有效率的在大量数据中查找匹配的信息。支撑这种信息检索的技术就是LDAP协议。AD域:为了避免账户数据量过大造成的管理不便,我们会将所有的账户数据按照域的概念来划分,再分别对...
2018-06-04 21:04:00
1152
转载 InnoDB体系架构(四)Master Thread工作方式
Master Thread工作方式 在前面的文章:InnoDB体系架构——后台线程说到:InnoDB存储引擎的主要工作都是在一个单独的后台线程Master Thread中完成。这篇具体介绍该线程的具体实现及该线程可能存在的问题。一、InnoDB1.0X版本之前的Master Thread Master Thread具有最高的线程优先级别,内部由多个循环组成:主循环(lo...
2018-03-25 16:59:00
139
转载 PHP基础架构
PHP基础架构一、PHP简介 PHP是一种非常流行的高级脚本语言,尤其适合Web开发,快速、灵活和实用是PHP最重要的特点。PHP自1995年由Lerdorf创建以来,在全球得到了非常广泛的应用。二、PHP的特性PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法,丰富的语法支持、同时支持面向对象、面向过程,相比C、Java等语言具有语法简...
2018-03-20 23:29:00
224
转载 InnoDB体系架构(三)Checkpoint技术
Checkpoint技术 前篇InnoDB体系架构(二)内存从缓冲池、缓冲池的管理、重做日志缓冲、额外内存缓冲这四个点介绍了InnoDB存储引擎的内存结构,而在将缓冲池的数据刷新到磁盘的过程中使用到了Checkpoint技术,这篇文章我们着重讲解一下Checkpoint在内存中到应用。一、Checkpoint使用背景 由于日常DML语句,如:Update / Dele...
2018-03-19 23:09:00
125
转载 InnoDB体系架构(二)内存
InnoDB体系架构(二)内存 上篇文章InnoDB体系架构(一)后台线程介绍了MySQL InnoDB存储引擎后台线程:Master Thread、IO Thread、Purge Thread、Page Cleaner Thread 四种。 这篇文章将介绍 InnoDB体系架构中的内存,主要有四小结分别为:缓冲池、缓冲池的管理、重做日志缓冲、额外内存缓冲。 ...
2018-03-18 23:36:00
112
转载 InnoDB体系架构(一)后台线程
InnoDB体系架构——后台线程 上一篇已经了解了MySQL数据库的体系结构这一篇除了介绍InnoDB存储引擎的体系架构外,同时进一步了解InnoDB的后台线程。 InnoDB存储引擎是多线程的模型,所以犹太有多个不同的后台线程,负责处理不同的任务,主要有:Master Thread、IO Thread、Purge Thread、Page Cleaner Thread四种。...
2018-03-17 16:41:00
193
转载 MySQL体系结构和存储引擎概述
MySQL体系结构和存储引擎概述一、定义数据库和实例数据库: 物理操作系统文件或其他形式文件类型的集合。数据库文件可以是frm、MYD、ibd 结尾的文件。 从概念上来说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器的数据集合;实例: MySQL数据库由后台进程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。 需要注意的是,...
2018-03-15 23:31:00
115
转载 HTTPS工作原理
首先先来简单的了解一下HTTP和HTTPS两者之间简单的区别:HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTPS:H...
2017-12-15 17:53:00
88
转载 Yii2 三层设计模式:SQL Command、Query builder、Active Record(ORM)
用Yii2也有一段时间了,发现Yii2 Framework对Database的操作有非常良好的结构和弹性。接下来介绍三种数据库操作方式。 SQL Command Level:// Get DB componet of Application$db = Yii::$app->db;# Get data form SQL execution$ a...
2017-12-05 22:10:00
163
转载 Yii2 Template 组件框架集封装
项目简介: Yii2_Template是一个“提供大多数PHP常用的组件去集合成的一套基于Yii2的项目框架”。 该项目是一款秉着提高 开发效率、降低开发成本,遵循高拓展,高可用的原则的进行开发的框架。 架构和安装上的的一些逻辑和细节,之后会慢慢的逐个说明。功能特性 所有的功能组件都是能不耦合的都不会去耦合这些组件模块,为了就是保证日后开发者们对组件功能的升...
2017-11-15 21:13:00
170
转载 CentOS 解决vim乱码问题
今天在服务器安装了任务调度工具(TaskCTL)发现是乱码的,看了官方文档说的办法也没有处理成功,可能由于他们已经有一段时间没有维护这个版本了。(以前提供的免费版本)后来发现CentOS的Vim的打开是有设定编码的(虽然自身系统也有编码)~/.vimrcset fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936...
2017-11-10 15:35:00
231
转载 Mac下通过 brew 安装 Apache 和 PHP
Mac自带的是php5.6 ,这里讲一下如果要升级到php7.1需要做的。1、安装brewhttps://brew.sh/(官网有提供安装命令建议使用)ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2、安装结束后先介绍一下br...
2017-09-30 17:35:00
162
转载 file_put_contents 换行
file_put_contents('test.text', json_encode($result) . PHP_EOL, FILE_APPEND);转载于:https://www.cnblogs.com/wilburxu/p/7274926.html
2017-08-02 17:06:00
142
转载 MySQL 中文字符集排序
SELECT 字段名 FROM 表 ORDER BY CONVERT(字段名 USING gbk) ASC;转载于:https://www.cnblogs.com/wilburxu/p/7263238.html
2017-07-31 15:17:00
105
转载 Yii2 Apache + Nginx 路由重写
一、什么是路由重写 原本的HTTP访问地址: www.test.com/index.php?r=post/view&id=100 表示这个请求将由PostController 的 actionView来处理。 重写后的HTTP访问地址 www.test.com/post/view/id/100 这样的链接看起来简洁美观,对于用户比较友好。同时,也比较适合搜索引擎的...
2017-07-29 21:13:00
324
转载 DQL、DML、DDL、DCL的概念与区别
##SQL(Structure Query Language)语言是数据库的核心语言。一、DDL (Data Definition Language) 数据库定义语言 用于创建、改变、删除对象的SQL语句统称:DDL。 1. Create create命令用于创建对象如:表、索引、存储过程、触发器、函数等。 Example: cre...
2017-07-24 19:52:00
140
转载 php获取指定日期的前一天,前一月,前一年日期
## php获取指定日期的前一天,前一月,前一年日期前一天的日期为:date("Y-m-d",strtotime("-1 days",strtotime('2014-07-01')))前一月的日期为:date("Y-m-d",strtotime("-1 months",strtotime('2014-07-01')))前一年的日期为:...
2017-07-21 14:53:00
203
转载 PHP 获取两个时间之间的月份
## 获取两个时间之间的间距时间$s = '2017-02-05';$e = '2017-07-20';$start = new \DateTime($s);$end = new \DateTime($e);// 时间间距 这里设置的是一个月$interval = \DateInterval::createFromDateStri...
2017-07-19 18:55:00
258
转载 PHP 调试工具Xdebug安装配置
##PHP 调试工具Xdebug安装配置一、Xdebug 介绍 Xdebug是一个开源的PHP程序调试工具,可以使用它来调试、跟踪及分析程序运行状态。当然,Xdebug需要结合PHP的编辑工具来打断点、跟踪、调试及分析,比较常用的PHP的Xdebug调试环境。二、安装 (一)xdebug.dll 下载 https://pecl.php.net/packag...
2017-07-18 19:25:00
206
转载 Nginx 反向代理、负载均衡
## Nginx 反向代理。(一)简介 一、什么是代理服务器 客户机原本发送给服务器的请求,不会直接发送给服务器,而是先发送给代理服务器;经过代理服务器处理后转发给服务器;服务器数据处理后转回给代理服务器,代理服务器再返回给客户机的一个过程。 二、代理服务器的作用 1. 防火墙作用 由于所有的客户机请求都必须通过代理服务...
2017-07-17 20:40:00
100
转载 nodejs 安装
## nodejs 安装wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gzsudo yum install gcc gcc-c++./configuremakesudo make installnode --version转载于:https://www.cnblogs.com/wilburxu/p/6...
2017-04-25 13:36:00
68
转载 Docker
Docker是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere.Docker的主要特性如下:文件系统隔离:每个进程容器运行在完全独立的根文件系统里。资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自...
2017-04-17 17:14:00
89
转载 Yii2多语言
背景: 如果项目有要求需要用到多语言的话,那么就需要引入语言包了。要添加语言包,需要现在config/main.php配置:'i18n' => [ 'translations' => [ 'lang*' => [ 'class' => 'yii\i18...
2017-03-13 19:55:00
134
转载 WNMP(Windows + Nginx + PHP + MySQL) 安装
最近在开发一个新的项目,环境用的是:Nginx1.10.3 下载地址:http://nginx.org/en/download.html下载windows版本包PHP 7.1.1 下载地址:http://windows.php.net/download/下载windows版本包MySQL 5.7.17 下载地址 :https://cdn.mysql.com//D...
2017-02-10 15:41:00
768
转载 Yii2框架 数据库常用操作
通用:use yii\db\Query;$query = new Query();查询:Query:$rows = (new \yii\db\Query()) ->select(['code', 'name', 'population']) ->from('country') ...
2017-02-08 15:15:00
116
转载 Python 生成器与迭代器 yield 案例分析
前几天刚开始看 Python ,后因为项目突然到来,导致Python的学习搁置了几天。然后今天看回Python 发现 Yield 这个忽然想不起是干嘛用的了(所以,好记性不如烂笔头。)。然后只能 花点时间 回顾一下 廖雪峰老师 Python前面的课程内容了 并对廖老师的课程内容做了以下总结:迭代器(iter):迭代器是访问集合元素的一种方式。迭代器的对象从集合的第一个元素开始访...
2017-01-06 17:42:00
79
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人