设为首页 收藏本站
查看: 1077|回复: 0

[经验分享] php缓存相关

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-23 12:09:03 | 显示全部楼层 |阅读模式
  在php运行期间,php引擎要对php源码进行处理,(词法分析,语法分析等)然后生成opcode。
  然后再运行。在这个阶段可以把opcode缓存起来,当下次需要运行这段程序的时候,就避免了再次 进行词法分析,语法分析,直接拿opcode来用。
  eAccelerator就是这样的程序。
  
  用vld查看php的opcode:
  http://pecl.php.net/package/vld/0.12.0/windows
  在上面的地址下载vld,解压后 将 php_vld.dll,拷贝到ext目录下。
  修改php.ini,增加“extension=php_vld.dll”;
  要查看opcode,新建一个php脚本,cmd下执行
  “E:\xampp\php>php -dvld.active=1 e:\htdocs\mytest\n.php”命令。
  显示结果:



E:\xampp\php>php -dvld.active=1 e:\htdocs\mytest\n.php
Finding entry points
Branch analysis from position: 0
Jump found. Position 1 = 13, Position 2 = 6
Branch analysis from position: 13
Return found
Branch analysis from position: 6
Jump found. Position 1 = 3
Branch analysis from position: 3
Jump found. Position 1 = 1
Branch analysis from position: 1
filename:       E:\htdocs\mytest\n.php
function name:  (null)
number of ops:  14
compiled vars:  !0 = $i
line     # *  op                           fetch          ext  return  operands
---------------------------------------------------------------------------------
30     0  >   ASSIGN                                                   !0, 0
1  >   IS_SMALLER                                       ~1      !0, 100
2    > JMPZNZ                                        6          ~1, ->13
3  >   POST_INC                                         ~2      !0
4      FREE                                                     ~2
5    > JMP                                                      ->1
31     6  >   CONCAT                                           ~3      'a', !0
7      FETCH_W                      local               $4      ~3
8      ASSIGN                                                   $4, !0
32     9      CONCAT                                           ~6      'a', !0
10      FETCH_R                      local               $7      ~6
11      ECHO                                                     $7
33    12    > JMP                                                      ->3
36    13  > > RETURN                                                   1
branch: #  0; line:    30-   30; sop:     0; eop:     0; out1:   1
branch: #  1; line:    30-   30; sop:     1; eop:     2; out1:  13; out2:   6
branch: #  3; line:    30-   30; sop:     3; eop:     5; out1:   1
branch: #  6; line:    31-   33; sop:     6; eop:    12; out1:   3
branch: # 13; line:    36-   36; sop:    13; eop:    13
path #1: 0, 1, 13,
path #2: 0, 1, 6, 3, 1, 13,
012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
6566676869707172737475767778798081828384858687888990919293949596979899

  安装eAccelerator:
  下载:http://www.sitebuddy.com/php/accelerators/eaccelerator-windows-binaries
  下载下来的文件解压后,将dll文件,贝到ext下
  修改php.ini,开启



    [eAccelerator]
zend_extension_ts="C:/php/ext/eaccelerator.dll"       //路径根据实际情况而定
eaccelerator.shm_size="32"       //根据系统内存来定,默认16M,可以改成64M
eaccelerator.cache_dir="C:/php/temp"     //前面创建的缓冲文件夹
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

  配置redis:
  下载http://www.redis.cn/download.html
  解压后有两个dll文件,全部拷贝到ext目录下。[我拷贝到ext,还提示找不到。最后拷贝到php.exe目录下才不再报错]。
  修改php.ini
  添加
  "extension=php_igbinary.dll
  extension=php_vld.dll"
  重启apache,phpinfo();可以查看是否启动。
  
  测试redis:



$redis = new Redis();  
$redis->connect("192.168.0.110","6379");  //php客户端设置的ip及端口  
//存储一个 值  
$redis->set("say","Hello World");  
echo $redis->get("say");     //应输出Hello World  
//存储多个值  
$array = array('first_key'=>'first_val',  
'second_key'=>'second_val',  
'third_key'=>'third_val');  
$array_get = array('first_key','second_key','third_key');  
$redis->mset($array);  
var_dump($redis->mget($array_get));  

  
   
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-102951-1-1.html 上篇帖子: 分析和解析PHP代码的7大工具 下篇帖子: 使用PHP脚本来写Daemon程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表