PHP中4个加速、缓存扩展的区别和选用建议


Posted in PHP onMarch 12, 2014

折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的有eAccelerator、memcached、xcache、Alternative PHP Cache这几个缓存扩展,它们之间有什么区别?分别的作用又是什么?我们如何选择?这是本文给于大家的答案。

1、eAccelerator
eAccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存,提高了PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使PHP程序代码执效率能提高1-10倍。从文字上可以理解为:eAccelerator是PHP加速器扩展。
2、memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。从文字上可以理解为:内存缓存扩展,并且针对于集群服务器使用较多,主要用于分布式缓存,算是数据库缓存。
3、Alternative PHP Cache(APC缓存)
Alternative PHP Cache (APC缓存)是一种对PHP有效的开放源高速缓冲储存器工具,他能够缓存Opcode(目标文件)的PHP中间码。 APC的缓存分两部分:系统缓存和用户数据缓存. 系统缓存 是自动使用的,是指APC把PHP文件源码的编译结果缓存起来,然后在再次调用时先对比时间标记。如果未过期,则使用缓存代码运行。默认缓存 3600s(一小时).但是这样仍会浪费大量CPU时间.因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0).不过如果这样设置,改运PHP代码后需要restart一下您的web服务器(比如apache…).目前对APC的性能测试一般指的是这一层cache;从文字上理到:Alternative PHP Cache(APC缓存)也算是一种内存缓存扩展,算是数据库缓存扩展。
4、Xcache
是一个开源的opcode缓存器/优化器, 他能够提高服务器上的PHP性能,他通过把编译PHP后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率2到5倍, 降低服务器负载。 其实它与eAccelerator一样是PHP加速器扩展。

以上就是他们的作用与区别,简单一点就是:eAccelerator,xcache是PHP缓存扩展,memcached、APC缓存是数据库缓存扩展,一般两者只有要安装其中一个即可,不要贪多。另外,实际测试中发现当Cache数量超过一定阀值的时候,APC的性能不如Memcache。所以在扩展的选择上,本人一般会选择xcache+memcached这个组合。

PHP 相关文章推荐
PHP+DBM的同学录程序(4)
Oct 09 PHP
生成静态页面的PHP类
Nov 25 PHP
PHPCMS的使用小结
Sep 20 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
PHP的password_hash()使用实例
Mar 17 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
May 04 PHP
php源码分析之DZX1.5加密解密函数authcode用法
Jun 17 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
php生成图片缩略图功能示例
Feb 22 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
PHP执行普通shell命令流程解析
Aug 24 PHP
php使用websocket示例详解
Mar 12 #PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 #PHP
php实现快速排序的三种方法分享
Mar 12 #PHP
php二分查找二种实现示例
Mar 12 #PHP
php遍历文件夹和文件列表示例分享
Mar 11 #PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 #PHP
php上传图片存入数据库示例分享
Mar 11 #PHP
You might like
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
php防盗链的常用方法小结
2010/07/02 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
JS 实现双色表格实现代码
2009/11/24 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
基于python时间处理方法(详解)
2017/08/14 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
python利用tkinter实现屏保
2019/07/30 Python
Python用input输入列表的实例代码
2020/02/07 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
股份合作协议书范本
2014/04/14 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
详解Vue slot插槽
2021/11/20 Vue.js