使用 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部分常见问题总结
Mar 27 PHP
php 无限级缓存的类的扩展
Mar 16 PHP
php文档更新介绍
Jul 22 PHP
PHPEXCEL 使用小记
Jan 06 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 PHP
PHP中echo和print的区别
Aug 28 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
php实现文章置顶功能的方法
Oct 20 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
php把文件设置为插件的技巧方法
Feb 03 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
PHP Token(令牌)设计
2008/03/15 PHP
非常实用的php验证码类
2016/05/15 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
js特效,页面下雪的小例子
2013/06/17 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
python从子线程中获得返回值的方法
2019/01/30 Python
python统计字符的个数代码实例
2020/02/07 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
什么是类的返射机制
2016/02/06 面试题
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
JPA的特点
2014/10/25 面试题
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Python 用户输入和while循环的操作
2021/05/23 Python
Java设计模式之享元模式示例详解
2022/03/03 Java/Android