自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mac下的常用操作

查看80端口是否被占# 1.1 通过list open file命令可以查看到当前打开文件,在linux中所有事物都是以文件形式存在,包括网络连接及硬件设备。-i参数表示网络链接,-P参数是显示tcp端口,:80是查找端口号sudo lsof -P -i :80sudo lsof -P -i |grep "listen"# netstat命令netstat -anp tcp |gr...

2020-03-01 16:12:13 457

原创 mac 下用dockerfile搭建nginx

1、创建nginx文件夹,放置各种配置及日志等。mkdir -p /docker/nginx mkdir -p /docker/nginx/logsdocker 文件夹是我存放所有基础设施容器的地方。2、创建nginx配置文件cd /docker/nginxvim nginx.confnginx.conf为主配置文件user www-data; worker...

2019-06-05 11:49:39 1328

转载 从 0 开始构建一个属于你自己的 PHP 框架

从 0 开始构建一个属于你自己的 PHP 框架markdown bug 请移步https://github.com/TIGERB/easy-php/blob/master/README-CN.md查看文章

2019-05-08 20:20:42 417

转载 PHP设计模式 - 访问者模式

访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 UML类图: 角色: 1.抽象访问者(State):为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色,...

2019-05-08 18:00:31 209

转载 PHP设计模式 - 门面模式

门面模式(有时候也称外观模式)是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。 案例:炒股票,新股民不了解证券知识做股票,是很容易亏钱的,需要学习的知识太多了,这样新手最好把炒股的事情委托给基金公司,基金公司了解证券知识,那么新股民把自己的股票托管给基金公司去运营,这样新股民不必了解哪只...

2019-05-06 23:38:45 176

转载 PHP设计模式 - 代理模式

给某一个对象提供一个代 理,并由代理对象控制对原对象的引用。代理模式的英 文叫做Proxy或Surrogate,它是一种对象结构型模式模式动机:  在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起到 中介的作用,并且可以通过代理对象去掉客户不能看到 的内容和服务或者添加客户需要的额...

2019-05-06 23:34:23 124

转载 MySQL的InnoDB索引原理详解

http://www.admin10000.com/document/5372.html摘要:  本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。  InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM,文档)。本着高效学习的目的,本篇以介绍InnoDB为主,少量涉及MyISAM作为对比。  这篇文章是我在学习过程中总结完成...

2019-04-29 19:35:15 120

转载 BTree和B+Tree详解

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大...

2019-04-26 17:49:10 141

转载 SAPI(PHP常见的四种运行模式)

SAPI(Server Application Programming Interface)服务器应用程序编程接口,即PHP与其他应用交互的接口,PHP脚本要执行有很多方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中。SAPI提供了一个和外部通信的接口,常见的SAPI有:cgi、fast-cgi、cli、apache模块的DLL、isapi-------------...

2019-04-25 19:58:32 337

转载 PHP Opcode内核实现 - [ PHP内核学习 ]

catalogue1. Opcode简介2. PHP中的Opcode3. opcode翻译执行(即时解释执行)1. Opcode简介opcode是计算机指令中的一部分,用于指定要执行的操作, 指令的格式和规范由处理器的指令规范指定。 除了指令本身以外通常还有指令所需要的操作数,可能有的指令不需要显式的操作数。 这些操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端...

2019-04-25 19:44:47 402

转载 PHP解释器引擎执行流程 - [ PHP内核学习 ]

catalogue1. SAPI接口2. PHP CLI模式解释执行脚本流程3. PHP Zend Complile/Execute函数接口化(Hook Call架构基础)1. SAPI接口PHP的SAPI层实现上层接口的封装,使得PHP可以用在很多种模式场景下(例如apache、ningx、cgi、fastcgi、cli),以以cli SAPI为例子学习PHP解释器引擎是...

2019-04-25 19:43:42 407

转载 PHP扩展编写、PHP扩展调试、VLD源码分析、基于嵌入式Embed SAPI实现opcode查看

catalogue1. 编译PHP源码2. 扩展结构、优缺点3. 使用PHP原生扩展框架wizard ext_skel编写扩展4. 编译安装VLD5. Debug调试VLD6. VLD源码分析7. 嵌入式Embed SAPI编程1. 编译PHP源码wget http://cn2.php.net/distributions/php-5.5.31.tar....

2019-04-25 19:42:29 1255

转载 php 代码的编译

PHP是解析型高级语言,事实上从Zend内核的角度来看PHP就是一个普通的C程序,它有main函数,我们写的PHP代码是这个程序的输入,然后经过内核的处理输出结果,内核将PHP代码"翻译"为C程序可识别的过程就是PHP的编译。C程序在编译时将一行行代码编译为机器码,每一个操作都认为是一条机器指令,这些指令写入到编译后的二进制程序中,执行的时候将二进制程序load进相应的内存区域(常量区、数据区...

2019-04-25 19:12:36 668

转载 redis分布式锁

目录锁和分布式锁 锁是什么? 为什么需要锁? Java中的锁 分布式锁 redis 如何实现加锁 锁超时 retry redis 如何释放锁 不该释放的锁 通过Lua脚本实现锁释放 用redis做分布式锁真的靠谱吗 不靠谱的情况 redlock redis分布式锁,Lua,Lua脚本,lua redis,redis lua 分布式锁,red...

2019-04-23 00:50:00 190

转载 PHP - pcntl_fork() 执行过程详解

<?php $pid = pcntl_fork();if ($pid == -1){ die("could not fork");}elseif($pid == 0){ echo "I'm the childprocess\n";}else{ echo "I'm the parentprocess\n"; exit;}要...

2019-04-21 11:45:15 433

转载 也许,这样理解HTTPS更容易

摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消息给B:如果我们要实现这个聊天软件,本文只考虑安全性问题,要实现A发给B的hello消息包...

2019-04-17 01:12:32 95

转载 一篇文章带你详解 HTTP 协议(网络协议篇一)

本篇文章篇幅比较长,先来个思维导图预览一下。一张图带你看完本篇文章一、概述1.计算机网络体系结构分层计算机网络体系结构分层2.TCP/IP 通信传输流利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层往上走。如下:TCP/IP 通信传输流首先作为发送端的客户端在应用层(HTTP 协议)发出一个想...

2019-04-17 00:34:49 936

转载 PHP的openssl加密扩展使用小结

PHP的openssl加密扩展使用小结引言互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求)、数据完整性(没有被人修改过)、数据私密性(密文,无法直接读取)等。虽然现在已经有SSL/TLS协议实现的HTTPS协议,但是因在客户端上依赖浏览器的正确实现,而且效率又很低,所以一般的敏感数据(如交易支付信息等)还是

2018-01-30 18:12:23 536

转载 数字签名是什么

数字签名是什么?作者: 阮一峰日期: 2011年8月 9日今天,我读到一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思

2018-01-30 17:25:05 249

原创 php生成证书和密钥

$dn = array( "countryName" => 'XX', //所在国家名称 "stateOrProvinceName" => 'State', //所在省份名称 "localityName" => 'SomewhereCity', //所在城市名称 "org

2018-01-30 17:17:21 951

原创 php公钥加密和私钥解密

$configArgs = array( 'config' => 'C:\xampp\apache\bin\openssl.cnf', "digest_alg" => "sha512", "private_key_bits" => 4096, "private_key_t

2018-01-30 17:04:47 1033

原创 PhpStorm集成PSR2代码自动检查

我们写代码要遵循一定的规范, 但是我们有时候会犯错,所以需要有一个检查机制。当我们犯错的时候检查机制会发挥作用。下面介绍一下如何在phpstrom上设置代码检查。代码规范php有很多规范,现代Php要求遵循的是PSR规范。PSR是PHP通用性框架小组FIG(PHP Framework Interop Group) 制定的PHP规范,是PHP开发的事实标准。关于PSR的中文文档,可以参考

2017-08-29 16:11:55 3739 1

转载 实战:MySQL Sending data导致查询很慢的问题详细分析

这两天帮忙定位一个MySQL查询很慢的问题,定位过程综合各种方法、理论、工具,很有代表性,分享给大家作为新年礼物:)【问题现象】使用sphinx支持倒排索引,但sphinx从mysql查询源数据的时候,查询的记录数才几万条,但查询的速度非常慢,大概要4~5分钟左右【处理过程】1)explain首先怀疑索引没有建好,于是使用explai

2017-08-22 13:19:35 252

转载 MySQL中Cardinality值的介绍

1)         什么是Cardinality不是所有的查询条件出现的列都需要添加索引。对于什么时候添加B+树索引。一般的经验是,在访问表中很少一部分时使用B+树索引才有意义。对于性别字段、地区字段、类型字段,他们可取值范围很小,称为低选择性。如SELECT * FROM student WHERE sex='M'按性别进行查询时,可取值一般只有M、F。因此SQL语句得

2017-08-22 10:36:07 650

转载 MySQL 5.7 EXPLAIN EXTENDED语句说明

EXPLAIN EXTENDED相比EXPLAIN命令,会额外显示一个filtered字段。这个字段会指示出表的条件所过滤的表中行数的百分比。除此之外,在执行EXPLAIN EXTENDED命令之后,使用SHOW WARNINGS语句可以查看额外的语句信息。在MySQL 5.7.3,EXPLAIN命令会自动带EXTENDED参数。mysql> EXPLAIN EXTENDED SELE

2017-08-22 01:01:46 1107

转载 MySQL统计信息

摘要我们将一条查询SQL提交给MySQL之后,MySQL在进行真正的查询操作之前通常会经历两个阶段:SQL解析和查询优化。在SQL解析过程中,MySQL会将SQL解析为一个树状结构,而在查询优化阶段,MySQL会决定以什么方式进行查询,那么MySQL以什么方式进行查询的抉择依据是什么呢?答案就是这篇文章要介绍的MySQL统计信息,因为我厂的MySQL实际使用的是Percona分支,因此本文

2017-08-22 00:56:21 435

转载 VI中的多行删除与复制

VI中的多行删除与复制法一:单行删除,:1(待删除行)d多行删除 ,:1,10d法二:光标所在行,dd光标所在行以下的N行,Ndd方法1:光标放到第6行,输入:2yy光标放到第9行,输入:p此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。方法2:命令行模式下输入6,9 co 12复制第6行到第9行之间的内容到第12行后面。方法3:

2017-07-21 11:45:35 3274

原创 phpStorm 64位在win7下无法打开

有一次系统弹出一下更新java JDK的窗口,一不小心点了是,后来系统重启后就无法打开phpStorm了,改安装目录中的PhpStorm64.exe.vmoptions文件也没用,启动闪一下就没了,只能启动32位的,纠结了好久,终于找到原来更新的JDK是32位的,后来试着重新安装64位的JDK(jdk1.7 64位 下载)后,再打开,果然好了,经验教训啊。

2017-04-28 12:54:34 4832

转载 delete 多表删除的使用(连表删除)

delete 多表删除的使用1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id 2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉DELETE t

2017-04-20 16:03:27 31725 1

原创 PHP之Zip扩展,解压缩文件,ZipArchive类

PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。

2017-04-11 19:38:47 3096

原创 Swoole 博客与wiki

Swoole博客:http://rango.swoole.com/Swoole扩展地址:https://wiki.swoole.com/wiki/index/prid-1

2017-04-01 02:49:16 453

转载 详解spl_autoload_register()函数

在了解这个函数之前先来看另一个函数:__autoload。  一、__autoload  这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数。看下面例子:  printit.class.php   

2017-04-01 02:38:27 273

转载 yii框架autoload机制

Yii框架宣称自己的类加载方式很高效,是真正的“用时加载”,那究竟特别在哪里?今天研究了一下源码,发现其实是在代码级加了一层“路径缓存”。我们知道,要实现自己的autoload方法,需要采用spl_autoload_register()函数注册一个autoload方法,Yii注册的这个方法是YiiBase::autoload(),稍后再讲解这个方法的逻辑。另外,Yii一般都用Yii::impo

2017-04-01 02:36:37 306

转载 mysql order by的一些技巧

1. 只按日期排序,忽略年份> select date, description from table_name order by month(date),dayofmonth(date);注意:单纯使用dayofyear来排序会导致错误,如2-29与非闰年的3-1日同等级 2. 排序点分式IP> select ip from tab

2017-04-01 02:32:52 362

转载 xhprof安装和使用

2010年的时候有做过相关的东西,为ECOS框架写了一个相关的APP应用,前段时候要用xhprof来测试一下ECAE上的php的运行效率又重新要安装xhprof本日志记录下相关的过程,以便以后再次使用到编译安装wget http://pecl.php.net/get/xhprof-0.9.2.tgztar zxf xhprof-0.9.2.tgzcd xhprof-0.

2017-04-01 02:27:58 564

转载 swoole的进程模型架构

swoole的强大之处就在与其进程模型的设计,既解决了异步问题,又解决了并行。主线程MainReactorswoole启动后主线程会负责监听server socket,如果有新的连接accept,主线程会评估每个Reactor线程的连接数量。将此连接分配给连接数最少的reactor线程。这样的好处是每个reactor线程持有的连接数是非常均衡的,没有单个线程负载过高的问题解

2017-04-01 01:51:39 826

转载 PHP程序守护进程化

一般Server程序都是运行在系统后台,这与普通的交互式命令行程序有很大的区别。glibc里有一个函数daemon。调用此函数,就可使当前进程脱离终端变成一个守护进程,具体内容参见man daemon。PHP中暂时没有此函数,当然如果你有兴趣的话,可以写一个PHP的扩展函数来实现。PHP命令行程序实现守护进程化有2种方法:一 、使用nohupnohup php myprog.

2017-04-01 01:47:55 400

转载 linux的nohup命令的用法

在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想mysqld一样,这样我们就需要nohup命令,怎样使用nohup命令呢?这里讲解nohup命令的一些用法。nohup /root/

2017-04-01 01:45:33 216

转载 学习swoole的心得

什么是swooleswoole是PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。Swoole可以广泛应用于互

2017-03-31 19:06:30 1345

转载 Yii2的异步多线程服务之swoole

在使用yii2做网站开发时,是鉴于它上手速度快,拥有强大的组件和丰富的类库。以前做过些Android系统层、APP、流媒体等,而在接触yii2后发现,这个的开发速度确实快,虽然是个做网站的PHP框架,没有可比性,不过看了很多博客对比过yii2、laravel、phalcon,yii2的开发速度比后几个能提升几个等级。(话说以后有时间体验下后面两个,看是不是真的~)废话不多说,进入正题。做网

2017-03-31 17:35:34 2464 1

空空如也

空空如也

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

TA关注的人

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