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的分页功能
Mar 21 PHP
php smarty函数扩展
Mar 15 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
基于PHP中的常用函数回顾
Jul 11 PHP
PHP微框架Dispatch简介
Jun 12 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
php编程每天必学之验证码
Mar 03 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 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
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
分享一个Laravel好用的Cache宏
2015/03/02 PHP
php简单日历函数
2015/10/28 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
基于vue--key值的特殊用处详解
2020/07/31 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
法律专业应届生自荐信范文
2014/01/06 职场文书
股东合作协议书
2014/04/14 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers