|
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2010 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: luofei614 <www.3g4k.com>
// +----------------------------------------------------------------------
// $Id: Memcache.class.php 2766 2012-02-20 15:58:21Z luofei614@gmail.com $
/**
*memcache模拟器。
*当本地环境不支持memcache时被调用。
*当你本地环境支持memcache时,会使用原始的memcache,此类将不起作用。
*/
class Memcache extends Think{
private static $handler;
public function __construct(){
if(!is_object(self::$handler)){
self::$handler=new CacheFile();
}
}
public static function add($key, $var, $flag=null, $expire=-1){
if(self::$handler->get($key)!==false) return false;
return self::$handler->set($key,$var,$expire);
}
public static function addServer($host,$port=11211,$persistent=null,$weight=null,$timeout=null,$retry_interval=null,$status=null,$failure_back=null,$timeoutms=null){
return true;
}
public static function close(){
return true;
}
public static function connect($host,$port=11211,$timeout=null){
return true;
}
public static function decrement($key,$value=1){
return self::$handler->decrement($key,$value);
}
public static function increment($key,$value=1){
return self::$handler->increment($key,$value);
}
public static function delete($key,$timeout=0){
$v=S($key);
if($v===false) return false;
if($timeout!==0){
return self::$handler->set($key,$v,$timeout);
}else{
return self::$handler->rm($key);
}
}
public static function flush(){
return self::$handler->clear();
}
public static function get($key,$flag=null){
if(is_string($key)){
return self::$handler->get($key);
}else{
//返回数组形式 array('k1'=>'v1','k2'=>'v2')
$ret=array();
foreach($key as $k){
$ret[$k]=self::$handler->get($k);
}
return $ret;
}
}
public static function getExtendedStats($type=null,$slabid=null,$limit=100){
//pass
return true;
}
public static function getServerStatus($host,$port=11211){
return 1;
}
public static function getStats($type,$stabid=null,$limit=100){
//pass
return true;
}
public static function getVersion(){
//todu 待完善
return true;
}
public static function pconnect($host,$port=11211,$timeout=null){
//pass
return true;
}
public static function replace($key,$var,$flag=null,$expire=-1){
if(self::$handler->get($key)===false) return false;
return self::$handler->set($key,$var,$flag,$expire);
}
public static function set($key,$var,$flag=null,$expire=-1){
return self::$handler->set($key,$var,$expire);
}
public static function setCompressThreshold($threshold,$min_savings=null){
//pass
return true;
}
public static function setServerParams($host,$port=11211,$timeout=-1,$retry_interval=false,$status=null,$retry_interval=false){
return true;
}
//todu memcache_debug 函数
}
function memcache_add($m,$key, $var, $flag=null, $expire=-1){
return Memcache::add($key,$var,$flag,$expire);
}
function memcache_add_server($host,$port=11211,$persistent=null,$weight=null,$timeout=null,$retry_interval=null,$status=null,$failure_back=null,$timeoutms=null){
return true;
}
function memcache_close(){
return true;
}
function memcache_decrement($m,$key,$value=1){
return Memcache::decrement($m,$key,$value);
}
function memcache_increment($m,$key,$value=1){
return Memcache::increment($key,$value);
}
function memcache_delete($m,$key,$timeout=0){
return Memcache::delete($key,$timeout);
}
function memcache_flush($m){
return Memcache::flush();
}
function memcache_get_extended_stats($m,$type=null,$slabid=null,$limit=100){
return true;
}
function memcache_get_server_status($m,$host,$port=11211){
return 1;
}
function memcache_get_stats($m,$type,$stabid=null,$limit=100){
return true;
}
function memcache_get_version($m){
return true;
}
function memcache_pconnect($host,$port=11211,$timeout=null){
return true;
}
function memcache_replace($m,$key,$var,$flag=null,$expire){
return Memcache::replace($key,$var,$flag,$expire);
}
function memcache_set_compress_threshold($m,$threshold,$min_savings=null){
return true;
}
function memcache_set_server_params($host,$port=11211,$timeout=-1,$retry_interval=false,$status=null,$retry_interval=false){
return true;
}
function memcache_set($m,$key,$value){
return $mmc->set($key,$value);
}
function memcache_get($m,$key){
return $mmc->get($key);
}
|