<?php $name = '11 abc cdd beb bbb'; /* $mem = new Memcache(); $mem->connect('127.0.0.1',11211); $res = $mem->add('name',$name,0,time()+30*24*3600); var_dump($res); $val = $mem->get('name'); var_dump($val); */ class memControl { private $server = array(); //设置服务器 以 数组的形式 ,即多个服务器 public $error = null; //返回值错误提示 private $memObj; //memcache 对象 public $serial; // 服务器编号 public function __construct($server) { $this->server = $server; // 服务器 $this->memObj = new Memcache(); // 实例化对象 赋值 给 $memObj } public function choiceService($key) //选择服务器 方法 { $num = sprintf("%u",crc32($key)); // sprintf() 返回一个格式化字符串 //crc32()计算一个字符串的 crc32 多项式 //由于 PHP 的整数是带符号的,许多 crc32 校验码将返回负整数, //因此你需要使用 sprintf() 或 printf() 的“%u”格式符来获取表示无符号 crc32 校验码的字符串。 return $num % count($this->server); // 根据 取MO 算法 算出是第 几台机器 } /********* 链接 ***********/ public function connect($key) { $this->serial = $serial = $this->choiceService($key); $bool = $this->memObj->connect($this->server[$serial]['host'],$this->server[$serial]['port']); if($bool) { return true; } else { $this->error = 'Connect Memcache Fail'; return false; } } public function add($key,$val,$expire=0) { $bool = $this->connect($key); if($bool) { return $this->memObj->add($key,$val,$expire); } else { return false; } } public function get($key) { $bool = $this->connect($key); if($bool) { return $this->memObj->get($key); } else { return false; } } } $server = array( array('host'=>'127.0.0.1','port'=>11211), array('host'=>'127.0.0.1','port'=>11212), array('host'=>'127.0.0.1','port'=>11213), ); $memObj = new memControl($server); $memObj->add('name',$name); $val = $memObj->get('name'); echo '<pre>'; print_r($memObj); print_r($val); ?>