白森 发表于 2015-11-19 09:21:38

XCache

安装XCache模块

  # phpize

  # ./configure --with-php-config=/usr/local/php/bin/php-config --enable-xcache --enable-xcache-optimizer

  # make

  # make install

  算出密码的MD5字串

  # echo -n “123456″ | md5sum

  配置XCache

  # vi /etc/php.ini

  

  zend_extension = /usr/local/php/lib/php/extensions/xcache.so

  

  ; Change xcache.admin.user to your preferred login name

  xcache.admin.user = "admin"

  ; Change xcache.admin.pass to the MD5 fingerprint of your password

  ; Use md5 -s "your_secret_password" to find the fingerprint

  xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"

  

  ; Change xcache.size to tune the size of the opcode cache

  xcache.size = 24M

  xcache.shm_scheme = "mmap"

  xcache.count = 2

  xcache.slots = 8K

  xcache.ttl = 0

  xcache.gc_interval = 0

  ; Change xcache.var_size to adjust the size of variable cache

  xcache.var_size = 8M

  xcache.var_count = 1

  xcache.var_slots = 8K

  xcache.var_ttl = 0

  xcache.var_maxttl = 0

  xcache.var_gc_interval = 300

  xcache.test = Off

  xcache.readonly_protection = On

  xcache.mmap_path = "/tmp/xcache"

  xcache.coredump_directory = ""

  xcache.cacher = On

  xcache.stat = On

  xcache.optimizer = Off

  

  xcache.coverager = On

  xcache.coveragedump_directory = ""
    
  

示例代码:

<?php
define(TMPDIR, '/tmp');
function load_abc_data()
{
if (xcache_isset(&quot;abc_data&quot;)) {
return xcache_get(&quot;abc_data&quot;);
}
// it worth a lock here to avoid useless yet harmful concurrent
// load from any slow backend (backend=mysql here).
$fp = fopen(TMPDIR . &quot;/abc_data.lock&quot;, &quot;w&quot;);
flock($fp, LOCK_EX);
// check AGAIN after we get the lock
if (xcache_isset(&quot;abc_data&quot;)) {
fclose($fp);
return xcache_get(&quot;abc_data&quot;);
}
mysql_query .... and get $data
xcache_set(&quot;abc_data&quot;, $data, 120); // save for 2 minutes
fclose($fp);
return $data;
}
?>


版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: XCache