摘要: 因阿里云服务器VPC默认占用了172.16.0.0/16 网段,与Docker里的网段相同,导致Docker里无法连接VPC服务器。后来找到的解决方案是修改Docker的默认网段。 由于Docker默认网段是172.16.0.0/16 ,我们可以修改为其他网段。 如何修改 Docker for ma阅读全文
posted @ 2018-07-14 08:33 飞鸿影~ 阅读(19) 评论(0) 编辑
摘要: 学习准备 Linux 或者 Mac 环境; 安装有 Sockets 扩展; 了解 TCP/IP 协议。 socket函数只是PHP扩展的一部分,编译PHP时必须在配置中添加 配置项来启用。 如果自带的PHP没有编译scokets扩展,可以下载相同版本的源码,进入 使用 编译安装。 socket系列函阅读全文
posted @ 2018-07-11 10:08 飞鸿影~ 阅读(219) 评论(3) 编辑
摘要: Swoole 里也提供了一些直接操作底层 事件循环的接口,可将其他扩展创建的 、PHP代码中 扩展创建的 等加入到Swoole的 中。 文档:https://wiki.swoole.com/wiki/page/242.html 这里我也简单介绍一下。 基本使用 说明: 回调函数没有参数, 回调函数参阅读全文
posted @ 2018-07-07 16:12 飞鸿影~ 阅读(168) 评论(0) 编辑
摘要: Event扩展 Event可以认为是替代libevent最好的扩展,因为libevent已经很久不更新了,而Event一直在更新,而且Event支持更多特性,使用起来也比libevent简单。 Event地址: http://pecl.php.net/package/event Event文档: h阅读全文
posted @ 2018-07-03 13:01 飞鸿影~ 阅读(197) 评论(2) 编辑
摘要: Libevent 是一个用C语言编写的、轻量级的开源高性能I/O框架,支持多种 I/O 多路复用技术: epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。PHP提供了对应的扩展 "libevent" 、 "Event"阅读全文
posted @ 2018-07-02 10:03 飞鸿影~ 阅读(335) 评论(0) 编辑
摘要: 前面几节都是讲解pcntl扩展实现的多进程程序。本节给大家介绍swoole扩展的 模块。 swoole多进程 swoole_process 是swoole提供的进程管理模块,用来替代PHP的pcntl扩展。 首先,确保安装的swoole版本大于1.7.2: 注意:swoole_process在最新的阅读全文
posted @ 2018-06-26 09:49 飞鸿影~ 阅读(218) 评论(2) 编辑
摘要: 本节主要讲解Posix常用函数和进程池的概念,也会涉及到守护进程的知识。本节难度较低。 Posix常用函数 posix_kill 向指定pid进程发送信号。成功时返回 , 或者在失败时返回 。 ,可以检测进程是否存在,不会发送信号。 示例: 注:通过 可以看到Linux下所有的信号常量。 posix阅读全文
posted @ 2018-06-25 14:05 飞鸿影~ 阅读(76) 评论(0) 编辑
摘要: 本节讲解几个多进程的实例。 多进程实例 Master Worker结构 下面例子实现了简单的多进程管理: 支持设置最大子进程数 Master Worker结构:Worker挂掉,Master进程会重新创建一个 ~~~防盗版声明:本文系原创文章,发布于公众号 (fhyblog)及 "博客园" ,转载需阅读全文
posted @ 2018-06-22 10:06 飞鸿影~ 阅读(99) 评论(1) 编辑
摘要: 上一篇文章讲解了 和`pcntl_wait`两个函数的使用,本篇继续讲解PHP多进程相关新知识。 僵尸(zombie)进程 这里说下僵尸进程: 僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程(zombie)进程。任何进程在退出前(使用exit退出) 都会变成僵尸进程(阅读全文
posted @ 2018-06-19 07:38 飞鸿影~ 阅读(352) 评论(0) 编辑
摘要: `Hiredis` 是Redis数据库的简约C客户端库。它是简约的,因为它只是增加了对协议的最小支持,但是同时它使用了一个高级别的 printf like API,所以对于习惯了 printf 风格的C编程用户来说,其非常容易使用,而且API中没有明确的绑定每个 Redis 命令。 Github: 阅读全文
posted @ 2018-06-18 22:17 飞鸿影~ 阅读(193) 评论(0) 编辑
摘要: 本系列文章将向大家讲解 系列函数,从而更深入的理解进程相关知识。 PCNTL在PHP中进程控制支持默认是关闭的。您需要使用 配置选项重新编译PHP的 CGI或CLI版本以打开进程控制支持。 如果自带的PHP没有安装pcntl扩展,可以下载相同版本的源码,进入 使用 编译安装。 Note: 此扩展在 阅读全文
posted @ 2018-06-13 07:34 飞鸿影~ 阅读(330) 评论(0) 编辑
摘要: 上一篇文章里,我们介绍了如何基于xhprof扩展来分析PHP性能,并记录到日志里,最后使用xhprof扩展自带的UI在web里展示出来。本篇文章将讲述2个知识点: 使用xhgui代替xhprof的默认UI界面,更便于分析 使用tideways扩展替换xhprof扩展 使用更漂亮的UI: xhgui 阅读全文
posted @ 2018-05-14 23:49 飞鸿影~ 阅读(164) 评论(0) 编辑
摘要: 安装xhprof扩展 配置php.ini 注:xhprof已经很久没有更新过了,截至目前还不支持php7,php7可以使用 https://github.com/phacility/xhprof.git。 配置xhprof环境 需要把xhprof压缩包里的两个目录复制到指定目录(假设定义到 ): 然阅读全文
posted @ 2018-05-13 11:29 飞鸿影~ 阅读(115) 评论(1) 编辑
摘要: 为什么使用断点调试 大家可能会觉得使用var_dump和echo也能调试啊,为什么还要安装Xdebug断点调试呢? 确实是这样。但是var_dump和echo写的代码后面还要删除,而且明确是知道在哪打的,如果发现没有运行到打点的地方,还要修改代码再运行一次。而断点调试,可以在调试过程中动态打断点,逐阅读全文
posted @ 2018-05-13 10:14 飞鸿影~ 阅读(221) 评论(0) 编辑
摘要: 适用场景 直播消息 弹幕消息 粉丝订阅消息推送 知识点 1、关键字:PUBLISH SUBSCRIBE PSUBSCRIBE Redis采用PUBLISH命令发送消息,其返回值为接收到该消息的订阅者的数量。 Redis采用SUBSCRIBE命令订阅某个频道,其返回值包括客户端订阅的频道,目前已订阅的阅读全文
posted @ 2018-04-30 14:10 飞鸿影~ 阅读(148) 评论(0) 编辑