使用 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 SQL之where语句生成器
Mar 24 PHP
第六章 php目录与文件操作
Dec 30 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
Yii结合CKEditor实现图片上传功能
Jun 13 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
PHP输出XML格式数据的方法总结
Feb 08 PHP
Laravel中的Auth模块详解
Aug 17 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 PHP
PHP实现本地图片转base64格式并上传
May 29 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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python实现自动上京东抢手机
2018/02/06 Python
python3中函数参数的四种简单用法
2018/07/09 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
运动会拉拉队口号
2014/06/09 职场文书
敬老月活动总结
2014/08/28 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技