PHP中Memcache操作类及用法实例
本文实例讲述了PHP中Memcache操作类及用法。分享给大家供大家参考。具体分析如下:
<?php /* 内存缓存管理 */ classYc_Memcache{ private$memcache=null; publicfunction__construct(){ } /** *连接数据库 * *@parammixed$host *@parammixed$port *@parammixed$timeout */ public functionconnect($host,$port=11211,$timeout=1){ if(!function_exists(memcache_connect)){returnFALSE;} $this->memcache=@memcache_connect($host,$port,$timeout); if(emptyempty($this->memcache)){ returnFALSE; }else{ returnTRUE; } } /** *存放值 * *@parammixed$key *@parammixed$var *@parammixed$flag 默认为0不压缩 压缩状态填写:MEMCACHE_COMPRESSED *@parammixed$expire 默认缓存时间(单位秒) */ publicfunctionset($key,$var,$flag=0,$expire=10){ $f=@memcache_set($this->memcache,$key,$var,$flag,$expire); if(emptyempty($f)){ returnFALSE; }else{ returnTRUE; } } /** *取出对应的key的value * *@parammixed$key *@parammixed$flags *$flags如果此值为1表示经过序列化, *但未经过压缩,2表明压缩而未序列化, *3表明压缩并且序列化,0表明未经过压缩和序列化 */ publicfunctionget($key,$flags=0){ $val=@memcache_get($this->memcache,$key,$flags); return$val; } /** *删除缓存的key * *@parammixed$key *@parammixed$timeout */ publicfunctiondelete($key,$timeout=1){ $flag=@memcache_delete($this->memcache,$key,$timeout); return$flag; } /** *刷新缓存但不释放内存空间 * */ publicfunctionflush(){ memcache_flush($this->memcache); } /** *关闭内存连接 * */ publicfunctionclose(){ memcache_close($this->memcache); } /** *替换对应key的value * *@parammixed$key *@parammixed$var *@parammixed$flag *@parammixed$expire */ publicfunctionreplace($key,$var,$flag=0,$expire=1){ $f=memcache_replace($this->memcache,$key,$var,$flag,$expire); return$f; } /** *开启大值自动压缩 * *@parammixed$threshold单位b *@parammixed$min_saveings默认值是0.2表示20%压缩率 */ publicfunctionsetCompressThreshold($threshold,$min_saveings=0.2){ $f=@memcache_set_compress_threshold($this->memcache,$threshold,$min_saveings); return$f; } /** *用于获取一个服务器的在线/离线状态 * *@parammixed$host *@parammixed$port */ publicfunctiongetServerStatus($host,$port=11211){ $re=memcache_get_server_status($this->memcache,$host,$port); return$re; } /** *缓存服务器池中所有服务器统计信息 * *@parammixed$type期望抓取的统计信息类型,可以使用的值有{reset,malloc,maps,cachedump,slabs,items,sizes} *@parammixed$slabid cachedump命令会完全占用服务器通常用于比较严格的调 *@parammixed$limit从服务端获取的实体条数 */ publicfunctiongetExtendedStats($type='',$slabid=0,$limit=100){ $re=memcache_get_extended_stats($this->memcache,$type,$slabid,$limit); return$re; } } /***********测试区域********************/ $mem=newYc_Memcache(); $f=$mem->connect('125.64.41.138',12000); var_dump($f); if($f){ //$mem->setCompressThreshold(2000,0.2); $mem->set('key','hello',0,30); // var_dump($mem->delete('key1')); //$mem->flush(); //var_dump($mem->replace('hao','d')); //echo$mem->get('key'); echo$mem->getServerStatus('127.0.0.1',12000); echo$mem->get('key'); echo'<pre>'; print_r($mem->getExtendedStats()); } ?>
希望本文所述对大家的PHP程序设计有所帮助。