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 20 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
基于php验证码函数的使用示例
May 03 PHP
php输入流php://input使用示例(php发送图片流到服务器)
Dec 25 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
PHP构造二叉树算法示例
Jun 21 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 PHP
TP5框架简单登录功能实现方法示例
Oct 31 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 随机生成10位字符代码
2009/03/26 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
js调用css属性写法
2013/09/21 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
使用python装饰器验证配置文件示例
2014/02/24 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
纪念建党演讲稿范文
2014/01/13 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
关于MySQL中explain工具的使用
2023/05/08 MySQL