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截取中文字符串的问题
Jul 12 PHP
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
PHP 一个比较完善的简单文件上传
Mar 25 PHP
PHP5中使用PDO连接数据库的方法
Aug 01 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 PHP
基于PHP实现通过照片获取ip地址
Apr 26 PHP
Smarty保留变量用法分析
May 23 PHP
php微信公众号开发之翻页查询
Oct 20 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
phpstudy隐藏index.php的方法
Sep 21 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
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
php判断表是否存在的方法
2015/06/18 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
Python学习笔记之常用函数及说明
2014/05/23 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
Python魔法方法详解
2019/02/13 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
python 实现屏幕录制示例
2019/12/23 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
django从后台返回html代码的实例
2020/03/11 Python
Python是什么 Python的用处
2020/05/26 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
主管会计岗位责任制
2014/02/10 职场文书
《雨点》教学反思
2014/02/12 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书