自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

提后在的博客

勤求知,尽人事

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

原创 Vuex源码解析

之前看了一下Vuex源码,在这里分享一下。 准备阶段: 先去github上把源码下载下来:git clone https://github.com/vuejs/vuex.gitcd vuexnpm i把依赖安装一下,这样就可以运行 npm run dev 之后在浏览器上打开http://localhost:8080/ ,就可以看到如下页面: 随便点击进入一个项目,之后,...

2018-09-04 18:07:31 654

原创 用php实现几种常见的排序算法

一、冒泡排序 冒泡排序理解起来是最简单,但是时间复杂度(O(n^2))也是最大的之一,实现代码如下:function bubbleSort($arr) { $len = count($arr); for ($i = 0; $i < $len; $i++) { // 遍历i后面的元素,只要该元素小于当前元素,就把较小的往前冒泡 for ($j = $i

2017-03-14 22:41:26 4435

原创 php源码阅读----php5.3.27 mysqli扩展bug及修复

最近在做一个功能,需要设置mysql查询超时。于是就使用mysqli的options(MYSQL_OPT_READ_TIMEOUT,5)或者options(11,5),但结果却出人意料。首先,我写了如下的测试代码:<?php $mysqli = mysqli_init(); $r = $mysqli->options(11, 1); var_dump($r); $my

2017-03-08 20:34:11 1531

原创 centos 6.5 docker安装

docker这东西火了挺久了,最近就抽空来玩一下。但由于我的虚拟机centos6.5的内核版本是2.6.32-279.el6.x86_64的,所以安装前,需要升级一下。升级步骤如下:一、下载如下两个文件: kernel-ml-aufs-3.10.5-3.el6.x86_64.rpm.gz kernel-ml-aufs-devel-3.10.5-3.el6.x86_64.rpm.gz

2017-03-07 21:30:33 1526

原创 mysql大表更新comment方案

最近由于业务需要,要更新一个mysql大表的部分字段的comment,于是,首先想到的是用alter table xxx modify。本以为mysql的modify命令可以做到只是简单修改frm文件,然而它有一个致命的弱点,那就是modify命令必须加上字段定义。官方语法如下:| MODIFY [COLUMN] col_name column_definition [FIRST |

2017-03-02 11:34:27 2549

原创 主机无法用ssh连接虚拟机问题

今天遇到一个很神奇的问题,打开虚拟机,然后执行ifconfig,结果如下: 然后用secureCRT连接,发现老是连接不上。于是我在cmd命令行上执行:ping 192.168.154.10发现是ping不通的。这就尴尬了。后来发现,在“更改适配器选项”那里,看不到熟悉的“VMware Network Adapter VMnet8”。于是网上找了一下,其实问题很简单,在虚拟机的虚拟网络编辑器那

2016-10-26 23:42:02 3738

原创 kafkaSpout工作流程简介

一切从kafkaSpout的open函数开始。 ①、new一个ZKState的类,这个类主要是用于读写zk的数据。接下来的很多类会调用这个类中的方法,来获取partition信息、broker信息和offset信息,并更新offset信息。 ②、new一个DynamicPartitionConnections类。这个类的_reader变量会存放哪个partition的lead

2016-08-10 18:59:36 2272

原创 rtrim函数的一个坑

简述一下今天遇到的问题: 在我的代码里面有如下代码段:<?php header("Content-type:text/html;charset=utf8"); echo rtrim("威、","、");本来的预想是输出“威”。然而事与愿违,输出了几个乱码。这是为什么呢?容我细细道来。 首先要知道rtrim函数的功能,它的第二个参数是一个string,其中的每个char都会被拿出来

2016-07-20 16:00:47 6986 2

原创 mysql大量数据迁移

最近有个需求,要把机器a上的一个数据库迁移到机器b上,这个数据库的数据有100多个G。所以,果断抛弃用mysqldump的方法来迁移。这时候想到的就是直接复制文件来做迁移。 于是我按照网上的说法,步骤如下: 一、把机器b的mysql停掉。 二、把机器a上要迁移的库的整个目录复制到机器b的mysql data目录下。 三、修改目录权限为700,修改文件权

2016-04-06 17:09:03 9419 2

原创 PHP session文件锁住及解决

最近项目遇到一个神奇的问题,当一个页面卡主的时候,用同一个浏览器打开的我们网站的其他页面,也会跟着卡主。但如果我把浏览器关掉,然后再打开,页面就不会卡了,或者换一个浏览器打开,页面也不会卡。我第一时间就觉得,应该是session的问题。 于是我用strace 跟踪了一下那个php进程,发现 果然是session文件死锁了。 于是网上找了下,大多是使用session_write_close(

2016-03-17 22:22:50 2103

原创 nodejs安装提示express不是内部命令

今天在window下搭建了nodejs环境,下载安装包,并安装在指定目录,我放在D:\nodejs然后在命令行下,进入该目录,执行npm install -g expressnpm install jade安装完后,发现执行express -v会报错。 原来是express4.0版本以后,将命令工具分家出来了,所以我们还需要安装一个命令工具,命令如下:npm install -g express

2016-03-14 19:26:27 472

原创 用PHP实现n的阶乘--高精度算法

今天在IT届,最火的新闻莫过于李世石输给了alphago。看到新闻说,“围棋有361个落子点,所以下棋有10^171种可能。”然后我就突然想361的阶乘是多少呢?即361*360*359*358*......*5*4*3*2*1 = ?于是自己用php实现了一下算法。代码如下:<?php $result = "1"; for($i = 1; $i <= 361; $i++){

2016-03-09 20:27:11 8586

原创 angularjs $watch ng-include 中的变量引发的问题

最近接触一个新项目,用到了angularjs,之前对angularjs不熟悉,于是就被坑了,在这里小计一下。 我有两个文件,文件a.html内容如下:<html> <head> <script src='angular.js'></script> </head> <body> <div ng-app="myApp" ng-con

2016-02-19 15:54:56 6149

原创 mysql优化方案

1、当where语句后面有多列条件时,为这多个列建立一个联合索引比为每个列建立独立索引要好的多。由于为每个列建立独立索引,mysql在查询时,其实是先每个列的索引去查询数据,然后把查询回来的数据做一次合并。而联合索引的话,mysql只需要用一个索引去查询数据,然后就能得到结果。2、建立联合索引时,一定要注意各个列的顺序,mysql在使用联合索引时,会遵循“最左匹配”原则。(注意:最左匹配并不是说,s

2015-11-30 13:02:17 637

翻译 【mysql】explain语句的输出格式

本文是翻译而来的,原文地址:EXPLAIN Output Formatexplain语句会为我们显示select语句的执行计划相关的信息。每个在select语句中用到的table,explain语句都会为其返回一行信息,而且这些table的顺序是按照MYSQL查询时的顺序输出的。MYSQL使用内嵌循环的方式来解决所有连表。这意味着,MYSQL会先从第一张表中读取一行数据,然后去第二张表中寻找匹配的行

2015-11-20 19:39:01 2317

原创 [mysql]explain语句中的key_len计算

有时候表中有联合索引时,我们想确定我们的sql使用了几个索引字段,这时候就可以用explain查看该sql的key_len,然后通过key_len的值来判断该sql使用了几个索引字段。 假设有如下表:CREATE TABLE `tblGameRemain` ( `id` int(11) not null auto_increment primary key, `RecDate` d

2015-11-16 20:15:13 3969 1

转载 PHP扩展代码结构详解

PHP扩展代码结构详解 : 这个是继:使用ext_skel和phpize构建php5扩展  内容 (拆分出来)Zend_API:深入_PHP_内核:http://cn2.php.net/manual/zh/internals2.ze1.php我们使用ext_skel创建扩展 hello_module,该模块包含一个方法:hello_world。使用ext_skel

2015-11-16 11:01:53 1213

原创 【php】foreach中使用引用引起的问题

废话不多说,直接看如下代码: $arr = array('a','b','c','d'); foreach($arr as &$v){} foreach($arr as $v){ var_dump($v); }运行后,结果如下:string 'a' (length=1)string 'b' (length=1)string 'c' (len

2015-11-11 19:43:34 789

原创 使用secureCrt端口转发连接远程服务器mysql

经常遇到这样一种情况,本地无法连接线上的服务器A的mysql。但是我们可以连接线上服务器B,然后B服务器可以连接到A服务器的mysql。这时候,我们如果想让本地搭建的开发环境连上服务器A的mysql,就可以使用secureCrt的端口转发功能。 这个东西的原理其实就是,secureCrt监听本地端口x,当x有请求时,把请求的信息获取,然后传给远程服务器的端口y,然后远程服务器的端口y返回

2015-10-20 19:51:28 7554

转载 B-tree/B+tree/B*tree

1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树 (Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然对查找效率是有所提高的;还有

2015-10-08 15:52:41 1387

转载 Zend API:深入 PHP 内核

Zend API:深入 PHP 内核  本文转载自(http://www.woxihuan.com/17707858/1317300211103943.shtml)网上关于 PHP 的资料多如牛毛,关于其核心 Zend Engine 的却少之又少。PHP 中文手册出现已 N 年,但 Zend API 的翻译却仍然不见动静,小弟自觉对 Zend Engine 略有小窥,并且翻译也

2015-09-25 11:04:23 979

转载 php-redis中文文档

phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlient/phpredis(支持redis 2.0.4)Redis::__construct构造函数$redis = new Redis();connect

2015-09-24 17:35:47 766

原创 PHP扩展编写入门

本文通过编写一个简单的PHP扩展hello_world来说明PHP扩展是如何编写的。这个扩展没有任何的实用性,纯粹用来学习扩展如何编写的,如果真的想自己写出实用性的PHP扩展,还需要熟悉ZEND API,而且对C语言也有较高的要求。好,进入正题。1、进入PHP源码的ext目录下,然后执行:./ext_skel --extname=hello_world2、进入hello_world目录,编辑conf

2015-09-15 19:03:45 925

原创 SQL隔离级别

什么是SQL的隔离级别呢?举个例子来说吧。 事例1、 假设有用户A和用户B,他们对同一张innodb表进行如下操作: ①、同时开启一个事务: ②、用户A向表中插入一条数据。 ③、用户B查询表中的数据。 ④、同时提交事务。那么,当用户A插入数据之后,用户B再去表中查询数据时,用户A刚才插入的那条数据对用户B这次的查询是否可见,便成为隔离级别。SQL标准定义了四个隔离级别:一、READ UN

2015-09-13 15:47:03 1669

原创 css选择器优先级

比如有这样一段HTML代码:<div id='blakeFez'>blakeFez</div><style> div{color:red;} #blakeFez{color:green;}</style>那么这时候,上面的blakeFez会显示上面颜色呢?这里就要考虑到css选择器的优先级。css选择器的优先级是由重要性、特殊性、叠层这三个因素决定的。①、重要性 什么是重要

2015-09-09 21:29:42 799

转载 向量时钟

向量时钟(Vector Clock)[8, 9]是一种在分布式环境中为各种操作或事件产生偏序值的技术,它可以检测操作或事件的并行冲突,用来保持系统的一致性。向量时钟方法在分布式系统中用于保证操作的有序性和数据的一致性。向量时钟通常可以被认为是一组来自不同节点的时钟值Vi[1]、Vi[2]、…、Vi[n]。在分布式环境中,第i个节点维护某一数据的时钟时,根据这些值可以知道其他节点或副本的状态,例如Vi

2015-09-09 19:40:50 6885

原创 使用securecrt从远程服务器A ssh连接到服务器B

在工作中我们经常遇到这样一个问题,服务器A和服务器B在一个内网中,服务器A有外网ip,但服务器B没有外网ip或者我们只知道服务器B的内网ip。这时候我们要怎么登上服务器B呢? 假设服务器A和B都有我们的ssh公钥。这时,我们就可以用securecrt先登录服务器A,然后以服务器A为跳板,再登录到服务器B。 具体操作如下: ①、Options->Global Options ②、SSH2 ③

2015-09-09 13:49:55 3555

原创 一个超级简单的php框架

最近自己写了一个php框架,github地址如下: blakeFez-PHP-Framework 这个框架功能比较少,不适合商用,但如果只想做一个个人的小网站,这个框架绝对是够用了。 该框架的目录结构如下:/command //该目录用于存放cli模式下的command类/controller //该目录用于存放cgi模式下的controller类/frame //该目录用于存放框

2015-09-08 21:57:34 1015

原创 hive 使用php脚本来完成map/reduce

hive sql有个比较强大的功能就是可以使用外界脚本来完成map/reduce。用法如下: TRANSFORM(….) USING ‘….’ AS (….)。 USING里面可以使用php脚本来处理,具体使用方法看下面这个例子。①、建一个表:hive> CREATE TABLE `member`( > `id` int, > `user_name` string,

2015-09-08 20:22:38 1266

原创 linux下rsync配置

Linux下,服务端开启rsync服务有两种方式,一种是stand_alone模式,另一种是super daemon模式。stand_alone模式就是独立运行模式,在这种模式下,rsync程序是常驻内存的。super daemon模式就是同一个xinetd这个服务来管理rsync服务。xinetd这个服务会一直监听873这个端口,当有客户端向873端口发起请求时,xinetd这个服务就会唤醒rsy

2015-08-25 22:11:14 1036

原创 php深入学习之变量的引用计数

php变量的引用计数是什么呢?首先看一下php变量的底层结构:typedef struct _zval_struct zval;struct _zval_struct { zvalue_value value; //存放value zend_uint refcount__gc; //引用计数 zend_uchar type; //判断类型 z

2015-08-07 14:10:30 780

原创 LNMP环境搭建

LNMP其实就是Linux+Nginx+Mysql+Php。Linux安装我在上一篇已经详细介绍了。现在主要说nginx+mysql+php的安装一、nginx安装 nginx安装前,需要安装几个依赖库 openssl库、zlib库和pcre库①、openssl库安装cd ~/download && wget http://www.openssl.org/source/openssl-fips-

2015-07-23 10:23:29 1972

原创 redhat虚拟机安装

材料:VMware 10 redhat6.4 64位版一、安装VMware 运行VMware-workstation-full-10.0.1-1379776.exe,然后一路下一步,安装路径的话,你们自己选一个地方。到最后,需要输入序列号: 这时候运行vm10keygen.exe 将上面那串字符串黏贴过去就OK了。二、安装redhat虚拟机 打开安装好的VMware,到这个界面,然

2015-07-23 09:52:17 1085

原创 如何理解“php是用c写的”

很多人知道,php是用c写的。那么到底c写了php的什么呢?要理解这个,我们先从一个php脚本如何执行说起。假设有个php文件helloWorld.php:<?php$str = "hello world!";echo $str;然后我们在命令行执行:php helloWorld.php。之后会发生什么呢? ①、机器会打开一个叫php的程序,这个程序是用c写的。 ②、php程序会去读取hel

2015-07-08 12:31:16 2470

原创 jQuery源码阅读之获取jQuery对象

在阅读jQuery源码之前,先看下面这段简单的代码(function(window){ var jQuery = function(select){ //返回jQuery对象 return new jQuery.fn.init(select); } jQuery.fn = jQuery.prototype = { init:fu

2015-07-08 00:30:31 634

原创 Yii源码之import小析

用过Yii框架的人,一般都知道在Yii的配置里面,有个import参数。这个参数一般可以这样配置:Yii::setPathOfAlias('docroot', '/data/php/classes');$config = array( .... 'import' => array( 'docroot.services.*', 'docroot.mod

2015-07-06 23:10:37 816

原创 nginx+php-fpm模式php内存泄漏探究

之前遇到过一次服务器内存告警,查看后发现有个php-fpm进程占用了2G的内存。但我明明在php.ini文件里面,有配置 memory_limit = 256M,那为什么会有占用2G内存的php-fpm进程呢?

2015-06-30 08:51:28 7395

原创 PHP session机制小析

经常遇到一些用PHP写的需要登录的网站,如果你想退出,一个很方便的做法就是如下图所示: 在浏览器那里,按下F12,找的Cookies那一项,然后把名为PHPSESSID的Cookie删掉,然后刷新一下页面,你就会发现,自己已经退出了。这是什么原因呢?因为我们知道,PHP网站判断是否登录一般是用session来判断的,那为什么删除了Cookie之后就退出了呢?那么,我们就要知道,删除了这个Coo

2015-06-28 15:09:32 798

原创 css定位属性position的用法

css属性position的简单探讨。

2015-06-26 17:24:28 1687

空空如也

空空如也

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

TA关注的人

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