流量高峰前的预警与应急

Learning ExperienceStudy & Explore
流量高峰前的预警与应急

前提 本案前提服务器为 Ubuntu Server 16.04 LTS,Web Server 为 Nginx,Application Server 为 PHP7.0-FPM。 概述 本案用于概述当前服务器架构方案以及业务预警、应急方案; 本案不考虑云 ECS、RDS、REDIS挂掉的问题; 本案仅适合无资源池的部署方案;……

浅谈前端加载优化

Learning Experience
浅谈前端加载优化

0x01 前言 要了解前端优化,要从一个经典问题入手:从输入网址按下回车到显示页面,中间经历了什么。 0x02 从输入网址按下回车到显示页面,中间经历了什么 1、DNS 解析 验证本地 hosts,返回 IP 地址,不存在则进行第二步; 查询本地 DNS 服务器,返回 IP ……

PHP 中的数组处理函数

Learning Experience
PHP 中的数组处理函数

在学习和开发过程中,整理出来一些比较有意思的数组处理函数。 1、array_column() 用于返回数组中某一列。 实现截图: 运行效果:   2、array_filter(),使用callback函数过滤数组 使用形式如 array_filter($array, 'callbackFunctionName'),将删除……

PHP 代码执行出错了该怎么办?

我们在开发过程中,常常会遇到一些问题,一个函数体内出现了问题,如何追踪到代码呢? 当然,使用 PHP 自带的错误报告通常能解决大部分问题,那么如何开启 PHP 的调试报告呢? 在 php.ini 中找到 display_errors = Off 和 error_reporting = E_ALL,将 disp……

项目开发中,MySQL要注意的问题

在 MYSQL 5.6以后,MyISAM 与 InnoDB 的修改和查询的速度差距已经不大了,然而在新版本的 MySQL 中,我们也不推荐使用 MyISAM,更常用的是 InnoDB 和 TokuDB。因此本文内容仅针对老版本 MySQL 而言。 MyISAM 在 MyISAM 中,每个表单独保存为三个文件,因而……

PHP 常用设计模式

Learning Experience
PHP 常用设计模式

其实设计模式是通用的,不只是限定于 PHP 语言,但是这里使用 PHP 来举例。 工厂模式 使用工厂方法来生成对象,避免了new Class()这种方式,其好处在于如果__construct()的参数变化的话,只需要修改工厂方法而不需要到每个调用的地方去修改。   单例……

PHP 常用但不常见的函数

Learning Experience
PHP 常用但不常见的函数

1、array_splice 要删除数组中的 2 号元素,如果使用unset($a[1]),造成的后果将是: 可以看到,此处数组 2 号元素是丢失的,而如果使用array_splice($a, 1, 1),其结果是: 可以看到,完美的删除了 2 号元素。   2、pcntl_fork() 这是开启 PHP “多线……

分布式集群的无状态化

Learning Experience
分布式集群的无状态化

HTTP 众所周知,HTTP 是无状态的,何谓无状态呢,指的是 HTTP 本质上是由一个请求和一个响应组成,客户端发起一个请求,服务端提供一个响应。在服务端来看,所有发起的请求除了 URL 有所不同之外,其余的应该是无区别的,因而视为无状态。 COOKIE 然而,当……

对比关系型数据库与非关系型数据库

NoSQL是一种理念,用于指代非关系型的、分布式的、一般不保证遵循ACID的数据存储系统。 SQL与NoSQL的区别:    关系型数据库的最大特点就是事务一致性,这个特性小可以用于积分的消耗,大可以用于银行的转账。且关系型数据库可以增加一级memcached来进行……

PHP代码性能优化

Learning Experience
PHP代码性能优化

本节是我根据自身实践以及参考网络资料和 PHP 手册整理而成,仅讲述 PHP 代码优化,而不考虑数据库相关优化。 最大的优化操作是启用 Zend OpCache(Opcode缓存)。 其他的性能优化便是细节问题了, 变量应当用完就释放,不拷贝变量(如$data = $_GET); ……

Top