php代码Memcache缓存类

1、php代码Memcache缓存类


class dcache {
	var $pre;
	var $obj;
	var $con;
	var $time;

    function __construct() {
		$this->obj = new Memcache;
		include DT_ROOT.'/file/config/memcache.inc.php';
		$num = count($MemServer);
		$key = $num == 1 ? 0 : abs(crc32($GLOBALS['DT_IP']))%$num;
		$this->con = $this->obj->connect($MemServer[$key]['host'], $MemServer[$key]['port'], 2);
		if(!$this->con) $this->time = $GLOBALS['DT_TIME'];
    }

    function dcache() {
		$this->__construct();
    }

	function get($key) {
        if($this->con) return $this->obj->get($this->pre.$key);
		is_md5($key) or $key = md5($this->pre.$key);
		$php = DT_CACHE.'/php/'.substr($key, 0, 2).'/'.$key.'.php';
		if(is_file($php)) {
			$str = file_get($php);
			$ttl = substr($str, 13, 10);
			if($ttl < $this->time) return '';
			return substr($str, 23, 1) == '@' ? substr($str, 24) : unserialize(substr($str, 23));
		} else {
			return '';
		}
    }

    function set($key, $val, $ttl = 600) {
        if($this->con) return $this->obj->set($this->pre.$key, $val, 0, $ttl);
		is_md5($key) or $key = md5($this->pre.$key);
		$ttl = $this->time + $ttl;
		$val = ''.$ttl.(is_array($val) ? serialize($val) : '@'.$val);
		return file_put(DT_CACHE.'/php/'.substr($key, 0, 2).'/'.$key.'.php', $val);
    }

    function rm($key) {
        if($this->con) return $this->obj->delete($this->pre.$key);
		is_md5($key) or $key = md5($this->pre.$key);
		return file_del(DT_CACHE.'/php/'.substr($key, 0, 2).'/'.$key.'.php');
    }

    function clear() {
        if($this->con) return $this->obj->flush();
		@rename(DT_CACHE.'/php/', DT_CACHE.'/'.timetodate($this->time, 'YmdHis').'.tmp/');
    }

	function expire() {
		return true;
	}
}
?>

2、/file/config/memcache.inc.php文件代码,Memcache服务器配置


/*
说明:Memcache服务器配置
示例:
$MemServer = array(
	array('host'=>'192.168.1.10', 'port'=>'11211'),
	array('host'=>'192.168.1.11', 'port'=>'11211'),
	array('host'=>'192.168.1.12', 'port'=>'11211'),
);
*/
$MemServer = array(
	array('host'=>'127.0.0.1', 'port'=>'11211'),
);
?>

你可能感兴趣的:(缓存,php,缓存,php,memcached)