欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP缓存工具XCache安装与使用方法详解

程序员文章站 2023-11-03 22:27:16
本文实例讲述了php缓存工具xcache安装与使用方法。分享给大家供大家参考,具体如下: xcache是另外一种在php中使用的opcode缓存工具。像apc一样,xca...

本文实例讲述了php缓存工具xcache安装与使用方法。分享给大家供大家参考,具体如下:

xcache是另外一种在php中使用的opcode缓存工具。像apc一样,xcache在共享内存中存储opcode,并使用缓存的opcode来响应对php脚步的请求。

在windows系统上安装xcache

1、在http://xcache.lighttpd.net/pub/releasearchive 根据你的php版本,下载对应的软件包。

2、解压后把php_xcache.dll复制到ext目录中

3、在php.ini文件加入

[xcache]
zend_extension_ts=php_xcache.dall

在liunx系统上安装xcache

wget http://xcache.lighttpd.net/pub/releases/1.3.2/xcache-1.3.2.tar.gz
tar -zxvf xcache-1.3.2.tar.gz
cd xcache-1.3.2
phpize
./configure --enable-xcache
make
make install doc.codesky.net

打开php.ini文件,增加如下代码:

[xcache-common]
; change me - 64 bit php => /usr/lib64/php/modules/xcache.so
; 32 bit php => /usr/lib/php/modules/xcache.so
zend_extension = /usr/lib64/php/modules/xcache.so
[xcache.admin]
xcache.admin.auth = on
xcache.admin.user = "moo"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = ""
[xcache]
xcache.shm_scheme =    "mmap"
xcache.size =        32m
xcache.count =         1
xcache.slots =        8k
xcache.ttl  =       3600
xcache.gc_interval =     300
; same as aboves but for variable cache
; if you don't know for sure that you need this, you probably don't
xcache.var_size =      0m
xcache.var_count =       1
xcache.var_slots =      8k
xcache.var_ttl  =       0
xcache.var_maxttl  =     0
xcache.var_gc_interval =   300
; n/a for /dev/zero
xcache.readonly_protection = off
xcache.mmap_path =  "/dev/zero"
xcache.cacher =        on
xcache.stat  =        on

注意修改zend_extension = /usr/lib64/php/modules/xcache.so为正确的路径。

xcache设置

xcache.admin.user   (string) 管理认证用户名。默认设置"moo"
xcache.admin.pass  (string)管理认证密码。默认设置为"<empty string>"。此值应该是md5(你的密码)
xcache.admin.enable_auth (string)启用或禁用管理站点的身份验证。默认值"on"
xcache.test (string)启用或禁用测试功能
xcache.coredump_dir   (string)在遇到故障时,放置核心转储的目录。必须是php可写入的目录。保留为空带表禁用
xcache.cacher   (boolean) 启用或禁用opcode 缓存。默认开启
xcache.size    (int)所有共享缓存的大小。如果为0,缓存将无法使用
xcache.count  (int)缓存被分割的“块”数。默认值1
xcache.slots   哈希表提示。数字越大,哈希表内进行的搜索速度就越快。此值越高,所需内存也越多
xcache.ttl   (int)opcode文件的生存时间。0=无限期缓存
xcache.gc_interval  (秒) 触发垃圾回收的时间间隔。默认0
xcache.var_size  (int)变量大小
xcache.var_count (int)变量个数
xcache.var_slots 可变数据槽设置
xcache.var_ttl (秒)可变数据的生存时间,默认设置0
xcache.var_maxttl (秒)处理变量时最大的生存时间
xcache.var_gc_interval (秒)垃圾回收的生存时间
xcache.readonly_protection (boolean)启用readonlyprotection时可用。
xcache.mmap_path (string)用于只读保护的文件路径。这将限制两个php组共享同一个/tmp/cache目录
xcache.optimizer (boolean)启用或禁用优化  默认禁用
xcache.coverager (boolean)启用覆盖范围数据集合。
xcache.coveragerdump_directory (string)放置数据集合信息的目录位置。默认使用目录/tmp/pcovis

实例

引用www.initphp.com 框架 xcache类

<?php
if (!defined('is_initphp')) exit('access denied!');
/*********************************************************************************
 * initphp 2.0 国产php开发框架 dao-xcache缓存
 *-------------------------------------------------------------------------------
 * 版权所有: copyright by initphp.com
 * 您可以*使用该源码,但是在使用过程中,请保留作者信息。尊重他人劳动成果就是尊重自己
 *-------------------------------------------------------------------------------
 * $author:zhuli
 * $dtime:2011-10-09
***********************************************************************************/
class xcacheinit {
  /**
   * xcache缓存-设置缓存
   * 设置缓存key,value和缓存时间
   * @param string $key  key值
   * @param string $value 值
   * @param string $time 缓存时间
   */
  public function set_cache($key, $value, $time = 0) {
    return xcache_set($key, $value, $time);;
  }
  /**
   * xcache缓存-获取缓存
   * 通过key获取缓存数据
   * @param string $key  key值
   */
  public function get_cache($key) {
    return xcache_get($key);
  }
  /**
   * xcache缓存-清除一个缓存
   * 从memcache中删除一条缓存
   * @param string $key  key值
   */
  public function clear($key) {
    return xcache_unset($key);
  }
  /**
   * xcache缓存-清空所有缓存
   * 不建议使用该功能
   * @return
   */
  public function clear_all() {
    $tmp['user'] = isset($_server['php_auth_user']) ? null : $_server['php_auth_user'];
    $tmp['pwd'] = isset($_server['php_auth_pw']) ? null : $_server['php_auth_pw'];
    $_server['php_auth_user'] = $this->authuser;
    $_server['php_auth_pw'] = $this->authpwd;
    $max = xcache_count(xc_type_var);
    for ($i = 0; $i < $max; $i++) {
      xcache_clear_cache(xc_type_var, $i);
    }
    $_server['php_auth_user'] = $tmp['user'];
    $_server['php_auth_pw'] = $tmp['pwd'];
    return true;
  }
  /**
   * xcache验证是否存在
   * @param string $key  key值
   */
  public function exists($key) {
    return xcache_isset($key);
  }
}

更多关于php相关内容感兴趣的读者可查看本站专题:《php缓存技术总结》、《php面向对象程序设计入门教程》、《php基本语法入门教程》、《php数组(array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家php程序设计有所帮助。