使用 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 相关文章推荐
PHPShop存在多个安全漏洞
Oct 09 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 PHP
golang与PHP输出excel示例
Jul 22 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 PHP
Laravel 框架路由原理与路由访问实例分析
Apr 14 PHP
PHP常量及变量区别原理详解
Aug 14 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
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
用循环或if语句从json中取数据示例
2014/08/18 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
Python实现的二维码生成小软件
2014/07/11 Python
在Django中创建第一个静态视图
2015/07/15 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
python实现简易内存监控
2018/06/21 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
python 实现单通道转3通道
2019/12/03 Python
python爬虫请求头设置代码
2020/07/28 Python
python Matplotlib模块的使用
2020/09/16 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
舞蹈教育学专业推荐信
2013/11/27 职场文书
银行求职信个人范文
2013/12/16 职场文书
财务担保书范文
2014/04/02 职场文书
爱国口号
2014/06/19 职场文书
最新离婚协议书范本
2014/08/19 职场文书
工作会议通知
2015/04/15 职场文书
毕业设计致谢语
2015/05/14 职场文书
电频谱管理的原则是什么
2022/02/18 无线电