<?Php
class GetModMemcache
{
private $total='';
private $servers=array();
public function __construct($serversArr)
{
$this->total=count($serversArr);
$this->servers=$serversArr;
}
protected function position($key)
{
echo sprintf('%u',crc32($key))%$this->total;
return sprintf('%u',crc32($key))%$this->total;
}
protected function getMemcached($position)
{
$host=$this->servers[$position]['host'];
$port=$this->servers[$position]['port'];
$m= new memcache();
$m->addserver($host, $port);
return $m;
}
public function setKey($key, $value)
{
$num=$this->position($key);
$m=$this->getMemcached($num);
return $m->set($key, $value);
}
public function getKey($key)
{
$num=$this->position($key);
$m=$this->getMemcached($num);
return $m->get($key);
}
}
$arr=array(
array('host'=>'192.168.1.23', 'port'=>'11213'),
array('host'=>'127.0.0.1', 'port'=>'11211'),
array('host'=>'192.168.1.195', 'port'=>'11212'),
);
$mod=new GetModMemcache($arr);
$a=$mod->setKey('xxxx', 'ssssss11111111111111111111111',60);
?>
转载请注明原文地址: https://www.6miu.com/read-30107.html