使用 eAccelerator加速PHP代码的方法


Posted in PHP onSeptember 30, 2007

eAccelerator 真是一个好东西(它的前身是truck-mmcache)。 

简单来讲它是一套配合PHP(支持PHP5)运作的缓存系统,通过共享内存或磁盘文件方式交换数据。 

它被广为使用的是PHP源码“编码”(不太贴切的称为“加密”)和缓存PHP执行的中间码以加速。关于 eA 的安装使用的文章已经很多而且也很详细了,这次我想推荐的是用它辅助程序设计缓存,它提供了一组API如下: 

是一个非常便捷而又稳定的本机缓存实现方式,目前这部分设计似乎只支持于共享内存,所以只能用于 Unix -Like OS 了,windows的就没这个福气了。 

1. eaccelerator_put($key, $value, $ttl=0) 
  将 $value 以 $key 为键名存进缓存(php4下支持对像类型,看源码好像zend2里不支持了),$ttl 是这个缓存的生命周期,单位是秒,省略该参数或指定为 0 表示不限时,直到服务器重启清空为止。 

2. eaccelerator_get($key) 
  根据 $key 从缓存中返回相应的 eaccelerator_put() 存进去的数据,如果这项缓存已经过期或不存在那么返回值是 NULL 

3. eaccelerator_rm($key) 
  根据 $key 移除缓存 

4. eaccelerator_gc() 
  移除清理所有已过期的 key  

5. eaccelerator_lock($key) 
  为 $key 加上锁定操作,以保证多进程多线程操作时数据的同步。需要调用 eaccelerator_unlock($key) 来释放这个锁或等待程序请求结束时自动释放这个锁。 
  例如: 
  <?php 
    eaccelerator_lock("count"); 
    eaccelerator_put("count",eaccelerator_get("count")+1)); 
  ?> 

6. eaccelerator_unlock($key) 
  根据 $key 释放锁 

7. eaccelerator_cache_output($key, $eval_code, $ttl=0) 
  将 $eval_code 代码的输出缓存 $ttl 秒,($ttl参数同 eacclerator_put) 
   For Example: 
  <?php eaccelerator_cache_output('test', 'echo time(); phpinfo();', 30); ?> 

8. eaccelerator_cache_result($key, $eval_code, $ttl=0) 
  将 $eval_code 代码的执行结果缓存 $ttl 秒,($ttl参数同 eacclerator_put),类似 cache_output 
   For Example: 
  <?php eaccelerator_cache_result('test', ' time() . "Hello";', 30); ?> 

9. eaccelerator_cache_page($key, $ttl=0) 
  将当前整页缓存 $ttl 秒。 
  For Example: 
  <?php 
    eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30); 
    echo time(); 
    phpinfo(); 
  ?> 

10. eaccelerator_rm_page($key) 
  删除由  eaccelerator_cache_page() 执行的缓存,参数也是 $key 

______________________________________________ 
(作个简单例子看看它的威力,注意在 cli 模式下可能无效!) 

<?phpclass test_cache {  var $pro = 'hello';  function test_cache() {    echo "Object Created!<br>/n";  }  function func() {    echo ', the world!';  }  function now($t) {    echo date('Y-m-d H:i:s', $t);  }}$tt = eaccelerator_get("test_tt");if (!$tt){  $tt = new test_cache;  eaccelerator_put("test_tt", $tt);  echo "no cached!<br>/n";}else {  echo "cached<br>/n";}echo $tt->pro; $tt->func();$tt->now(time() + 86400);?>

PHP 相关文章推荐
PHP制作图型计数器的例子
Oct 09 PHP
php 5.3.5安装memcache注意事项小结
Apr 12 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 PHP
kohana框架上传文件验证规则写法示例
Jul 14 PHP
CI框架Session.php源码分析
Nov 03 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
实现php加速的eAccelerator dll支持文件打包下载
Sep 30 #PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 #PHP
一些常用的php简单命令代码集锦
Sep 24 #PHP
php下实现伪 url 的超简单方法[转]
Sep 24 #PHP
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 #PHP
56.com视频采集接口程序(PHP)
Sep 22 #PHP
从MySQL数据库表中取出随机数据的代码
Sep 05 #PHP
You might like
php 图片加水印与上传图片加水印php类
2010/05/12 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
php+webSoket实现聊天室示例代码(附源码)
2017/02/17 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
javascript replace方法与正则表达式
2008/02/19 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
Python快速从注释生成文档的方法
2016/12/26 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
环境科学专业个人求职的自我评价
2013/11/28 职场文书
会计工作心得体会
2014/01/13 职场文书
运动会获奖感言
2014/02/11 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
JavaScript原型链详解
2021/11/07 Javascript