使用 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 动态随机生成验证码类代码
Apr 09 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
Jun 03 PHP
ThinkPHP CURD方法之data方法详解
Jun 18 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
PHP如何使用Memcached
Apr 05 PHP
php利用gd库为图片添加水印
Nov 09 PHP
thinkPHP5.0框架命名空间详解
Mar 18 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 PHP
tp5框架基于ajax实现异步删除图片的方法示例
Feb 10 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
基于xcache的配置与使用详解
2013/06/18 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
php去除数组中重复数据
2014/11/18 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Pytorch 实现权重初始化
2019/12/31 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
使用Python实现批量ping操作方法
2020/05/06 Python
简单了解如何封装自己的Python包
2020/07/08 Python
Python实现上下文管理器的方法
2020/08/07 Python
印度购物网站:TATA CLiQ
2017/11/23 全球购物
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
医院党员公开承诺书
2014/08/30 职场文书
忠诚教育心得体会
2014/09/03 职场文书
高中教师个人总结
2015/02/10 职场文书
停水通知
2015/04/16 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
诉讼和解协议书
2016/03/23 职场文书
python tkinter模块的简单使用
2021/04/07 Python
用Python远程登陆服务器的步骤
2021/04/16 Python