例子,php memcache类实现代码。
<?php
// memcache
class php_memcache{
protected $handle = null;
protected $mem = null;
private $host = "";
private $port = "";
private $timeout = 0;
private $pconnect = false;
public function __construct($host = '127.0.0.1',$port='11211',$timeout=0,$pconnect=false){
$this->host = $host;
$this->port = $port;
$this->timeout = $timeout;
$this->pconnect = $pconnect;
$this->mem = new Memcache();
}
public function connect(){
if(!is_resource($this->handle)) {
if($this->pconnect == false){
if(empty($this->host)){
return false;
}
if(empty($this->port)){
return false;
}
$handle = $this->mem->connect($this->host,$this->port);
if(!$handle){
return false;
}else{
$this->handle = $handle;
}
}
}
return $this->handle;
}
public function set($key,$val,$flag=false,$expire=0){
if(!$this->connect()) return false;
$iFlage = 0;
if($flag == true){
$iFlage = MEMCACHE_COMPRESsed;
}
return $this->mem->set($key,$val,$iFlage,$expire);
}
public function get($key){
if(!$this->connect()) return false;
if (is_array($key)) {
$dest = array();
foreach ($key as $subkey) {
$val = $this->get($subkey);
if (!($val === false)){
$dest[$subkey] = $val;
}
}
return $dest;
} else {
return $this->mem->get($key);
}
}
public function replace($key,$val,$flag=false,$expire=0){
if(!$this->connect()) return false;
$iFlage = 0;
if($flag == true){
$iFlage = MEMCACHE_COMPRESSED;
}
return $this->mem->replace($key,$val,$iFlage,$expire);
}
public function delete($key,$time=0){
if(!$this->connect()) return false;
return $this->mem->delete($key,$time);
}
public function flush(){
if(!$this->connect()) return false;
return $this->mem->flush();
}
public function incr($key,$val=1){
if(!$this->connect()) return false;
return $this->mem->increment($key,$val);
}
public function decr($key,$val=1){
if(!$this->connect()) return false;
return $this->mem->decrement($key,$val);
}
public function getVersion(){
if(!$this->connect()) return false;
return $this->mem->getVersion();
}
}
?>