自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(439)
  • 资源 (1)
  • 收藏
  • 关注

原创 PHP进程通信-信号量和共享内存

信号量与共享内存。共享内存是最快是进程间通信方式,因为n个进程之间并不需要数据复制,而是直接操控同一份数据。实际上信号量和共享内存是分不开的,要用也是搭配着用。*NIX的一些书籍中甚至不建议新手轻易使用这种进程间通信的方式,因为这是一种极易产生死锁的解决方案。共享内存顾名思义,就是一坨内存中的区域,可以让多个进程进行读写。这里最大的问题就在于数据同步的问...

2019-01-17 15:01:00 204

原创 PHP 实现守护进程

1.简介守护进程是一个在后台运行并且不受任何终端控制的进程。Unix操作系统有很多典型的守护进程(其数目根据需要或20—50不等),它们在后台运行,执行不同的管理任务。用户使守护进程独立于所有终端是因为,在守护进程从一个终端启动的情况下,这同一个终端可能被其他的用户使用。例如,用户从一个终端启动守护进程后退出,然后另外一个人也登录到这个终端。用户不希...

2019-01-17 14:18:00 598

原创 PHP 进程通信-消息队列

消息队列是消息的链接表(一种常见的数据结构),但是这种消息队列存储于系统内核中(不是用户态),一般我们外部程序使用一个key来对消息队列进行读写操作。 在PHP中,是通过msg_*系列函数完成消息队列操作<?php// 创建消息队列键$key = ftok( __DIR__, 'a' );// 创建消息队列$queue = msg_ge...

2019-01-16 19:13:00 126

原创 PHP 进程通信-管道

1.简介管道是*NIX上常见的一个东西,大家平时使用linux的时候也都在用,简单理解就是|,比如ps -aux|grep php这就是管道,大概意思类似于ps进程和grep进程两个进程之间用|完成了通信。管道是一种半双工(现在也有系统已经支持全双工的管道)的工作方式,也就是说数据只能沿着管道的一个方向进行传递,不可以在同一个管道上反向传数据。管道分为...

2019-01-16 19:06:00 183

原创 MAC PHP 安装PHPUNIT 单元测试,并在phpstorm中支持

1.简介PHPUnit 是 PHP 程式语言中最常见的单元测试 (unit testing) 框架,PHPUnit 是参考 xUnit 架构利用 PHP为什么要使用 PHPUnit 来测试呢?虽然,要做单元测试可以自己写程式来测试, 但是 PHPUnit 提供了一些测试时常用的 library 及解决测试时会遇到问题的方法,所以我们会使用 PHPUn...

2019-01-15 19:15:00 640

原创 PHP实现快速排序

通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。1 从数列中挑出一个元素,称为 "基准"(pivot),2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就...

2019-01-10 13:17:00 1305

原创 无法访问服务器

很大可能没有配置http或者httpsimage.png

2019-01-03 11:12:00 450

原创 Cron 执行php保证只执行一次

要取得共享锁定(读取程序),将 operation 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)要取得独占锁定(写入程序),将 operation 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)要释放锁定(无论共享或独占),将 operation 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3...

2018-12-28 14:06:00 768

原创 ElasticSearch - 解决ES的深分页问题 (游标 scroll)

1.简介ES为了避免深分页,不允许使用分页(from&size)查询10000条以后的数据,因此如果要查询第10000条以后的数据,要使用ES提供的 scroll(游标) 来查询假设取的页数较大时(深分页),如请求第20页,Elasticsearch不得不取出所有分片上的第1页到第20页的所有文档,并做排序,最终再取出from后的size...

2018-12-22 23:43:00 1120

原创 PHP安装dio扩展

1.什么是dio扩展串口通信是使用相当广泛、方法简单的通信方式,而PHP也是目前网页中主流的格式。如果能利用php直接进行串口通信,也就意味着能直接远程去操作上位机所接入的下位机平台,如dsp、单片机。2.安装步骤curl 'http://pecl.php.net/get/dio-0.1.0.tgz' -o dio-0.1.0.tgzsu...

2018-12-20 00:07:00 2083

原创 html-table 实现复杂表头

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&gt...

2018-12-19 15:38:00 784

原创 Elasticsearch 随机返回数据 API

{ "from": 0, "size": 10,//返回十条数据 "query": { "bool": { "must": { "term": { "level": 1//查询条件。 } } } }, "_source": { &q

2018-12-18 16:16:00 5386

原创 Nginx 增加pathinfo

1.什么是pathinfo什么是PATHINFO:就是http://localhost/index.php/Home/Index/index/a/1/b/2?c=3中的/Home/Index/index,注意c=3并不是pathinfo的一部分,它是一个query参数。pathinfo值得是URL的路径实际上不存在的时候,apache或者Nginx等...

2018-12-16 23:36:00 1788

原创 php删除数组中指定值的元素

代码/** * User: yuzhao * CreateTime: 2018/11/30 下午3:23 * @param $arr * @param $value * @return mixed * Description: 根据值删除指定元素 */ public sta...

2018-11-30 16:03:00 760

原创 vim-tabe多标签切换

1.新建标签页使用:tabe命令和文件名参数,可以在新标签页中打开指定的文件。也可以使用:tabnew命令,在新标签页中编辑新的文件。命令:tab split将在新标签页中,打开当前缓冲区中的文件。命令:tabf允许你在当前目录搜索文件,并在新标签页中打开。比如我想打开当前目录下的img.txt文件,那么就可以使用:tabf img.*命令。请注...

2018-11-29 23:30:00 504

原创 PHP 查询本文件执行的进程数

/** * User: yuzhao * CreateTime: 2018/11/26 下午8:20 * Description: 获取进程数量 */ public static function getProcessNum($keyWord) { $command = "ps -e...

2018-11-28 23:50:00 216

原创 Mysql基本架构

1.mysql的组成简图FA77AB34A02F0399C8AA7B39EA010BA2.jpg逻辑架构image.png客户端PHP JAVA Go 等服务层连接器:管理连接,权限验证。查询缓存: 命中则直接返回结果。分析器:词法分析,语法分析。优化器:执行计划生成,索引选择。执行器:操作引擎,...

2018-11-22 23:25:00 136

原创 PHP知识图谱

image.png

2018-11-16 23:03:00 537

原创 PHP实现简单RPC

1.什么是rpcRPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场景极其广泛,实现的方式也各式各样。2.从通信协议的层面基于HTTP协议的(例如基于文本的SOAP(XML)、Rest(JSON),...

2018-11-16 00:56:00 178

原创 时间工具

<?php/** * User: yuzhao * CreateTime: 2018/10/30 上午11:58 * Description: 时间工具类 */class TimeTool { /** * User: yuzhao * CreateTime: 2018/11/14 上午11:20 ...

2018-11-14 21:14:00 97

原创 PHP中的unset方法究竟能否释放内存

1.有人说今天写着写着代码用到了unset所以想整理一下.有的人说PHP的unset并不真正释放内存, 有的说, PHP的unset只是在释放大变量(大量字符串, 大数组)的时候才会真正free内存, 更有人说, 在PHP层面讨论内存是没有意义的.也有人说:unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间。只有当指...

2018-11-07 01:05:00 378

原创 Mac 下nginx 切换brew下载的php版本

1.简介mac下自带的php5.6挺烦人的,用brew安装了php7.2后,phpinfo出来的竟然还是5.62.尝试的解决方法第一种brew unlink phpbre link php72`失败`第二种,以为是nginx配置的原因,最后百度了几篇文章修改如下,应该是没有错误了。 location ~ \.php$...

2018-11-07 00:12:00 631

原创 加载目录下的文件

<?php/** * User: yuzhao * CreateTime: 2018/10/30 上午11:58 * Description: */class FileTool { /** * User: yuzhao * CreateTime: 2018/10/30 下午12:22 * @var...

2018-10-30 23:07:00 90

原创 PHP ftp上传文件

php代码$shellCommand = "sh 路径.sh 第一个参数 第二个参数“;$res = exec($shellCommand);shell 脚本#!/bin/bashfile=$1 #第一个参数upload_ip=$2 #第二个参数F="sendftp"User="user ftp账户"Pwd="ftp密码...

2018-10-29 23:57:00 224

原创 JS-SDK QQ 登录

1.QQ开放平台申请个人开发者和网站应用QQ开放平台image.pngimage.pngimage.png2.代码配置引入 <script src="https://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="123...

2018-10-25 23:45:00 225

原创 php 根据域名获取ip地址

<?php/** * ip2long需要bigint来存储,而且在32位和64位系统中存储方式还有区别; * 而保存成字符串,只需要char20即可。那么,ip2long好处在哪? */$ip = gethostbyname('www.baidu.top');$numIp = ip2long($ip);var_dump($numIp)...

2018-10-24 16:35:00 480

原创 PHP Curl 类的封装工具

网上找的phpcurl请求类的封装,稍微改动了一下<?php/** * User: 郭玉朝 * CreateTime: 2018/10/23 下午11:00 * Description: */namespace tool;class MyCurl { private $ch;//curl资源对象 /** ...

2018-10-24 00:07:00 123

原创 PHP中间件

1.什么是中间件中间件是一个闭包,而且返回一个闭包。中间件为过滤进入应用的HTTP请求提供了一套便利的机制,可以分为前置中间件和后置中间件。常用于验证用户是否经过认证,添加响应头(跨域),记录请求日志等。image.png2.代码示例<?php// 框架核心应用层$application = function($nam...

2018-10-15 20:27:00 170

原创 Docker Mysql8.0 PHP连接不上

1.描述这个问题废了我好长时间,我用的dnmp(docker,ngnix,mysql,php)一键安装PHP docker 环境具体安装方式点我SQLSTATE[HY000] [2006] MySQL server has gone awayimage.png2.分析百度了很多,只有两种可能1.mysql 8.0 ro...

2018-10-12 18:18:00 593

原创 SSH 无法登陆

1.描述就跟吃了香蕉和枣的感觉一样某天下午登陆ssh突然就上不去了,提示如下ssh: connect to host port 22: Operation timed outping端口不通这时候我非常诧异➜ ~ telnet IP 22Trying ...telnet: connect to address: Connecti...

2018-10-08 11:20:00 429

原创 centos 安装 最新版本的docker

1.第一种yum updatevim /etc/yum.repos.d/docker.repo//添加以下内容[dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/enabled=1gpgchec...

2018-10-07 14:16:00 403

原创 Docker 搭建Go 开发平台

1.安装Docker,具体不阐述2.安装Go,具体不阐述3.使用go语言实现基本http服务package mainimport ( "fmt" "net/http")func IndexHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w,...

2018-10-04 12:30:00 125

原创 英雄埋骨无人问,戏子家事天下知!

英雄埋骨无人问,戏子家事天下知!图片发自简书App

2018-10-03 09:09:00 588

原创 PHP 多进程写文件独占锁

private function writeFile($file) { // 获取独占锁 if (flock($file,LOCK_EX)) { // 业务处理 // 释放独占锁 flock($file,LOCK_UN); } else { ...

2018-09-29 18:47:00 309

原创 Vim打开文件后有^M

问题截图image.pngimage.png

2018-09-25 23:24:00 132

原创 Go 实现Socket定时器

1.前言先说说为什么打算写一个定时器,Socket框架需要定时完成一些任务,比如发送心跳包或者定时向用户推送消息,接下来将简单实现多协程定时器单协程轮询定时器。2.实现步骤1.初始化并返回定时器var timerStruct = util.NewTimer()注册定时器// 第一个参数:方法名称,第二个参数间隔多少秒执行一次,...

2018-09-22 18:41:00 298

原创 Go 工厂方式几种

1. 何为工厂模式写socket开源框架时当用多协议时出现的疑问可不可以使用传统面向对象语言的工厂模式根据不同情况调用不同协议。工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。在面向对象的编程语言中(如java,C++)设计模式的概念广为人知, 应用的也非常广泛。设计模式让我们的代码变得灵活起来,具有很强的扩展性。但在...

2018-09-12 16:28:00 107

原创 Git命令简写

1.简写对应表简写完整命令ggitgstgit statusgdgit diffgdcgit diff --cachedgdvgit diff -w "$@" | view -glgit pullgupgit pull --rebasegpgit pushgcgit co...

2018-09-12 16:22:00 289

原创 Go 实现用户简单Api,并写一个测试工具

Api主要代码,点击我找跟此文章标题一样的commit,此阶段源码package dbopsimport ( "log" _ "github.com/go-sql-driver/mysql" "database/sql")func AddUserCredential(loginName string, pwd str...

2018-08-30 00:02:00 447

原创 MAC下Kafka安装和启动

Step1:下载Kafkabrew install kafka 因为我已经安装了下图只是为了演示image.png安装的配置文件位置/usr/local/etc/kafka/server.properties/usr/local/etc/kafka/zookeeper.propertiesStep2:启动服务这里我自己...

2018-08-28 01:16:00 1183

MyEclipse黑色主题

亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用亲测可用

2018-03-09

空空如也

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

TA关注的人

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