使用 eAccelerator加速PHP代码的方法

 更新时间:2007年09月30日 09:46:48   作者:  
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);?>

相关文章

  • yii2实现Ueditor百度编辑器的示例代码

    yii2实现Ueditor百度编辑器的示例代码

    这篇文章主要介绍了yii2实现Ueditor百度编辑器的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • PHP框架实现WebSocket在线聊天通讯系统

    PHP框架实现WebSocket在线聊天通讯系统

    这篇文章主要介绍了PHP框架结合实现WebSocket在线聊天通讯系统,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • 解决laravel session失效的问题

    解决laravel session失效的问题

    今天小编就为大家分享一篇解决laravel session失效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • 使用openssl实现rsa非对称加密算法示例

    使用openssl实现rsa非对称加密算法示例

    这篇文章主要介绍了使用openssl实现rsa非对称加密算法的示例,大家参考使用吧
    2014-01-01
  • Win7下手动安装apache2.2、php5.4笔记

    Win7下手动安装apache2.2、php5.4笔记

    这篇文章主要介绍了Win7下手动安装apache2.2、php5.4笔记,本文是个人手动操作记录,需要的朋友可以参考下
    2015-04-04
  • 基于jQueryUI和Corethink实现百度的搜索提示功能

    基于jQueryUI和Corethink实现百度的搜索提示功能

    这篇文章主要介绍了基于jQueryUI和Corethink实现百度的搜索提示功能,这里是以corethink模块的形式,只需要安装上访问index.php?s=/test/index 就可以了,需要的朋友可以参考下
    2016-11-11
  • 为百度UE编辑器上传图片添加水印功能

    为百度UE编辑器上传图片添加水印功能

    前些日子把phpcms的内置编辑器改成了百度UE编辑器,非常好用,但是有个地方不是很满意,就是没法给上传的图片加水印了,经过一番研究终于实现了出来,分享给大家。
    2015-04-04
  • PHP函数eval()介绍和使用示例

    PHP函数eval()介绍和使用示例

    这篇文章主要介绍了PHP函数eval()介绍和使用示例,本文给出例子很特别,是用eval嵌套在循环中执行,需要的朋友可以参考下
    2014-08-08
  • Symfony2 session用法实例分析

    Symfony2 session用法实例分析

    这篇文章主要介绍了Symfony2 session用法,结合实例形式分析了Symfony自带session方法的相关使用技巧,需要的朋友可以参考下
    2016-02-02
  • yii2中关于加密解密的那些事儿

    yii2中关于加密解密的那些事儿

    yii2.0怎么对传输的数据进行加密解密?下面这篇文章就来给大家介绍了yii2中关于加密解密的那些事儿,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-06-06

最新评论