php操作memcache缓存方法分享
使用memcache的前提是需要在服务端先配置好memcahche的环境!确认memcahce可以正常连接之后就可以在程序使用了!
<?php /** *Memcache缓存操作 *@authorhxm *@version1.0 *@since2015.05.04 */ classMCacheextendsObjectimplementsCacheFace { private$mem=null;//Mem对象 private$sId=1;//servier服务ID /** *初始化Memcache * *@returnObject */ publicfunction__construct() { if(!class_exists('Memcache')) { thrownewQException('PHPextensiondoesnotexist:Memcache'); } $this->mem=newMemcache(); } /** *链接memcahce服务 * *@accessprivate *@paramstring$key关键字 *@paramstring$value缓存内容 *@returnarray */ privatefunctionconnect($sid) { $file=$this->CacheFile(); require$file; if(!isset($cache)) { thrownewQException('缓存配置文件不存在'.$file); } $server=$cache[$this->cacheId]; $sid=isset($sid)==0?$this->sId:$sid;//memcache服务选择 if(!$server[$sid]) { thrownewQException('当前操作的缓存服务器配置文件不存在'); } $host=$server[$sid]['host']; $port=$server[$sid]['port']; try{ $this->mem->connect($host,$port); }catch(Exception$e){ exit('memecache连接失败,错误信息:'.$e->getMessage()); } } /** *写入缓存 * *@accessprivate *@paramstring$key关键字 *@paramstring$value缓存内容 *@returnarray */ publicfunctionset($key,$value,$sid,$expire=0) { $data=$this->get($key,$sid);//如果已经存在key值 if($data) { return$this->mem->set($key,$value,MEMCACHE_COMPRESSED,$expire); }else{ return$this->mem->add($key,$value,MEMCACHE_COMPRESSED,$expire); } } /** *读取缓存 * *@accessprivate *@paramstring$key关键字 *@paramint$sid选择第几台memcache服务器 *@returnarray */ publicfunctionget($key,$sid) { $this->connect($sid); return$this->mem->get($key); } /** *清洗(删除)已经存储的所有的元素 * *@accessprivate *@returnarray */ publicfunctionflush() { $this->connect(); return$this->mem->flush(); } /** *删除缓存 * *@accessprivate *@paramstring$key关键字 *@paramint$sid选择第几台memcache服务器 *@returnarray */ publicfunctionremove($key,$sid) { $this->connect(); return$this->mem->delete($key); } /** *析构函数 *最后关闭memcache */ publicfunction__destruct() { /*if(!$this->mem) { $this->mem->close(); }*/ } }
以上所述就是本文的全部内容了,希望大家能够喜欢。