当前位置:首页 > 编程教程 > php技术文章 > PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )

PHP中加速、缓存扩展的区别及用法整理

  • 发布时间:
  • 作者:码农之家
  • 点击:94

这篇文章主要知识点是关于PHP、加速、缓存扩展、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Learning PHP设计模式
Learning PHP设计模式高质量中文版
  • 类型:PHP编程大小:39.4 MB格式:PDF作者:William Sanders
立即下载

PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )

PHP中有eAccelerator、memcached、xcache、APC 4个加速、缓存扩展,下面给大家介绍下其区别,一起看看吧!

  折腾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中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )的全部叙述,希望对大家有所帮助,如果大家想了解更多内容敬请关注码农之家网站!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

PHP 相关电子书
学习笔记
网友NO.187141

PHP内存缓存功能memcached示例

下文简单介绍了memcached类的应用示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 一、memcached 简介 在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东。这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序。 二、memcached 安装 首先是下载 memcached 了,目前最新版本是 1.1.12,直接从官方网站即可下载到 memcached-1.1.12.tar.gz。除此之外,memcached 用到了 libevent,我下载的是 libevent-1.1a.tar.gz。 接下来是分别将 libevent-1.1a.tar.gz 和 memcached-1.1.12.tar.gz 解开包、编译、安装: # tar -xzf libevent-1.1a.tar.gz # cd libevent-1.1a # ./configure --prefix=/usr # make # make install # cd .. # tar -xzf memcached-1.1.12.tar.gz # cd memcached-1.1.12 # ./configure --prefix=/usr # make # mak……

网友NO.718965

ThinkPHP实现静态缓存和动态缓存示例代码

静态缓存 要使用静态缓存功能,需要开启HTML_CACHE_ON参数,并且使用HTML_CACHE_RULES配置参数设置静态缓存规则文件。 定义静态规则 'HTML_CACHE_ON' = true, // 开启静态缓存'HTML_CACHE_TIME' = 60, // 全局静态缓存有效期(秒)'HTML_FILE_SUFFIX' = '.shtml', // 设置静态缓存文件后缀'HTML_CACHE_RULES' = array( // 定义静态缓存规则 // 定义格式1 数组方式 '静态地址' = array('静态规则', '有效期', '附加规则'), // 定义格式2 字符串方式 '静态地址' = '静态规则', ) 静态缓存文件的根目录在HTML_PATH定义的路径下面,并且只有定义了静态规则的操作才会进行静态缓存。 并且静态缓存支持不同的存储类型。 静态缓存仅在GET请求下面有效。 静态地址 全局的操作静态规则 'read'=array('{id}',60)//定义所有的read操作的静态规则 定义全局的控制器静态规则 'user:'=array('User/{:action}_{id}','600')//定义所有的User控……

网友NO.382567

ThinkPHP静态缓存简单配置和使用方法详解

本文实例讲述了ThinkPHP静态缓存简单配置和使用方法。分享给大家供大家参考,具体如下: 根据ThinkPHP官方手册:ThinkPHP内置了静态缓存类,通过静态缓存规则定义来实现了可配置的静态缓存。 启用静态缓存: ThinkPHP官方手册写道 要使用静态缓存功能,需要开启HTML_CACHE_ON 参数,并且在项目配置目录下面增加静态缓存规则文件 htmls.php,两者缺一不可。否则静态缓存不会生效。 在配置文件Conf\config.php的array()中加上: 'HTML_CACHE_ON' = true,//开启静态缓存'HTML_PATH' = '__APP__/html',//静态缓存文件目录,HTML_PATH可任意设置,此处设为当前项目下新建的html目录 静态规则定义: ThinkPHP官方手册写道 静态规则的定义有三种方式: Return Array('ActionName'=array('静态规则','静态缓存有效期','附加规则'), //第一种'ModuleName:ActionName'=array('静态规则','静态缓存有效期','附加规则'),……

网友NO.841088

php处理静态页面:页面设置缓存时间实例

通过PHP去生成一个纯静态的页面://www.jb51.net/article/116814.htm 问:如何触发系统生成纯静态化页面? 1.页面添加缓存时间 2.手动触发的方式 3.crontab定时扫描程序 我们来实现方案一:页面添加缓存时间 用户请求页面 = 页面是否过期 = = 否(获取静态页面) || =是(动态页面生成一份新的静态页面) if( 如果存在这个静态文件 没有过期){ // 获取页面}else{ // 重新生成一份静态页面} ok,基本逻辑就是如此,下面我们完善代码: ?phpif(is_file('./index.html') (time()-filemtime('./index.html')) 60){ // 假设缓存时间是60秒 // 获取页面 require_once('./index.html');}else{ // 重新生成一份静态页面 // 准备要展示到网页的数据 $data = array( array('id'=1,'msg'='hello java'), array('id'=2,'msg'='hello php'), array('id'=3,'msg'='hello python'), ); // 渲染到模板 // 实际项目一般是在html里渲染 // 这里演示 希望能看懂 ob_start(); //……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com