php 实现memcache集群,PHP-Memcache 怎么做集群啊

如果是PHP用来存放SESSION:

ini_set('session.save_handler', 'memcache');

ini_set('session.save_path', 'tcp://192.168.0.1:10001?persistent=1&weight=1&timeout=1&retry_interval=15,tcp://192.168.0.2:10002?persistent=1&weight=1&timeout=1&retry_interval=15');

session_start();

如果是PHP存储和读取,参考以下类

/**

* Memcache Class

*

* Config example

* $MEMCACHE_CONFIG = array(

* '192.168.0.1:10001:100',

* '192.168.0.2:10002:100'

* );

*

*/

class Cache

{

private $mCache = null;

static private $mInstance = array();

static public function Instance($cluster='default')

{

if ( isset( self::$mInstance[ $cluster ] ) )

return self::$mInstance[ $cluster ];

return self::$mInstance[ $cluster ] = new Cache($cluster);

}

static private function _CreateCacheInstance($cluster='default')

{

$cache_instance = new MemCache();

foreach( $GLOBALS['platform_config']['memcache_config'] AS $one )

{

$server = (string) $one;

list($ip, $port, $weight) = explode(':', $server);

$cache_instance->addServer( $ip

,$port

,true

,$weight

,1

,15

,true

,array('Cache','FailureCallback')

);

}

return $cache_instance;

}

private function __construct($cluster='default')

{

$this->mCache = self::_CreateCacheInstance( $cluster );

}

static public function FailureCallback($ip, $port)

{

//var_dump( "$ip:$port" );

return false;

}

function Get($key)

{

return $this->mCache->get($key);

}

function Add($key, $var, $flag=0, $expire=0)

{

return $this->mCache->add($key,$var,$flag,$expire);

}

function Dec($key, $value=1)

{

return $this->mCache->decrement($key, $value);

}

function Inc($key, $value=1)

{

return $this->mCache->increment($key, $value);

}

function Replace($key, $var, $flag=0, $expire=0)

{

return $this->mCache->replace($key, $var, $flag, $expire);

}

function Set($key, $var, $flag=0, $expire=0)

{

return $this->mCache->set($key, $var, $flag, $expire);

}

function Del($key, $timeout=0)

{

if (is_array($key))

{

foreach ($key as $k) $this->mCache->delete($k, $timeout);

} else {

$this->mCache->delete($key, $timeout);

}

}

function Flush()

{

return $this->mCache->flush();

}

function GetFunctionKey($callback, $args=array())

{

$args = ksort($args);

$patt = "/(=>)s*'(d+)'/";

$args_string = var_export($args, true);

$args_string = preg_replace($patt, "\1\2", $args_string);

$key = "[FUNC]:$callback($args_string)";

return md5( $key );

}

function GetObjectKey($tablename, $id)

{

$key = "[OBJ]:$tablename($id)";

return md5( $key );

}

function GetKey($string)

{

return md5( $string );

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值