使用 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 adodb连接不同数据库
Mar 19 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
Nov 07 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
php支持断点续传、分块下载的类
May 02 PHP
php封装的page分页类完整实例
Oct 18 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
docker-compose部署php项目实例详解
Jul 30 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编码规范之注释和文件结构说明
2010/07/09 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
Python代理抓取并验证使用多线程实现
2013/05/03 Python
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
就业协议书范本
2014/04/11 职场文书
岗位工作说明书
2014/07/29 职场文书
碧霞祠导游词
2015/02/09 职场文书
努力工作保证书
2015/02/28 职场文书
离婚被告代理词
2015/05/23 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
七年级作文之游记
2019/12/11 职场文书
详解Oracle块修改跟踪功能
2021/11/07 Oracle