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的特殊设置
Oct 09 PHP
php 生成饼图 三维饼图
Sep 28 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
php接口实现拖拽排序功能
Apr 23 PHP
PHP基于mcript扩展实现对称加密功能示例
Feb 21 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
laravel返回统一格式错误码问题
Nov 04 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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用数组返回无限分类的列表数据的代码
2010/08/08 PHP
使用Sphinx对索引进行搜索
2013/06/25 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python 使用with上下文实现计时功能
2018/03/09 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
python匿名函数的使用方法解析
2019/10/10 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
自荐信封面
2013/12/04 职场文书
入党积极分子介绍信
2014/01/17 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
交通事故协议书范文
2014/04/16 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
通报表扬范文
2015/01/17 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书