分类: PHP

25 篇文章

RabbitMQ与PHP
你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎? 如果是,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用。 我们先来看看什么是RabbitMQ AMQP ,即Advanced…
初中级PHP面试基础汇总,学以致用!
1 说几个你所知道的设计模式 单例模式 保证一个类仅有一个实例,并提供一个访问他的全局访问点例如框架中的数据库连接 - 类似DB类 策略模式 针对一组算法,将每一个算法封装到具有共同接口的独立的类中,例如进入个人主页时,根据浏览者的不同,给予不同的显示与操作 - 类似不同用户呈现不同效果 注册模式 提供了在程序中有条理的存放并管…
记录一次PHP优化案例
网站架构简介:现在很多的企业都是使用lnmp或者lamp来做企业的网站服务器架构,这两种网站的服务架构,我们都是比较熟悉的;基于nginx的性能优于Apache,现阶段的很多公司,都是逐渐把Apache替换成nginx,毕竟nginx的自带的高可用配置,反向代理等等功能相当突出。Lnmp网站服务器架构,其实就是linx+nginx+mysql+ph…
记录一次PHP优化案例
网站架构简介:现在很多的企业都是使用lnmp或者lamp来做企业的网站服务器架构,这两种网站的服务架构,我们都是比较熟悉的;基于nginx的性能优于Apache,现阶段的很多公司,都是逐渐把Apache替换成nginx,毕竟nginx的自带的高可用配置,反向代理等等功能相当突出。Lnmp网站服务器架构,其实就是linx+nginx+mysql+ph…
导出百万级数据
| 技术方案 第一步:设计数据库,对所有导出任务进行实时记录,也可以采用redis,为了方便数据的持久化,最终采用了mysql数据库的方案。表结构具体包括:ID、用户ID、用户名、发起请求时间、导出具体的参数(包括各个维度的参数选择等,具体根据自身业务而定),任务是否正在处理标识(防止任务多次被处理),导出是否成功标识(可以与前一个用一个字段区分)…
PHP记录
性能检测 常用的调试检测PHP代码性能的方法有:memory_get_usage可以分析内存占用空间。用microtime函数就可以分析程序执行时间。 // 将字节数转换成MB function memory_usage() { $memory = ( ! function_exists('memory_get_usage')) ? '0' : r…
php设计模式
设计模式六大原则 开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭里氏替换原则:所有引用基类的地方,必须能透明地使用其子类的对象依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象,抽象不应依赖细节,细节应该依赖抽象单一职责原则:不要存在多于一个导致类变更的原因。一个类只负责一项职责接口隔离原则:客户端不应该依赖它不需…
利用swoole查看php与mysql通信过程
<?php $server = new Swoole\Server('0.0.0.0', 39055); $socket = null; //监听连接进入事件 $server->on('Connect', function ($server, $fd) { echo "Client: Connect.\n"; // 作为客户端连接mysql服…
php数组化操作对象
需要实现ArrayAccess接口中的4个方法: class FakeArray implements ArrayAccess { private $elements; public function __construct() { $this->elements = []; } /** * isset 触发 * @param $of…
Swoole进程模型
Swoole进程模型 首先,我们需要了解一下Swoole的进程模型。Swoole是一个多进程模式的框架(可以类比Nginx的进程模型),当启动一个Swoole应用时,一共会创建2 + n + m个进程,其中n为Worker进程数,m为TaskWorker进程数,2为一个Master进程和一个Manager进程,它们之间的关系如下图所示。 其中,Ma…