Memcache操作类如何在PHP中使用
发布时间:-12-15 17:11:00
来源:亿速云
阅读:93
作者:Leah
这篇文章给大家介绍Memcache操作类如何在PHP中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
具体分析如下:<?php
/*内存缓存管理
*/
classYc_Memcache{
private$memcache=null;
publicfunction__construct(){
}
/**
*连接数据库
*
*@parammixed$host
*@parammixed$port
*@parammixed$timeout
*/
publicfunctionconnect($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$slabidcachedump命令会完全占用服务器通常用于比较严格的调
*@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'
';
print_r($mem->getExtendedStats());
}
?>
关于Memcache操作类如何在PHP中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。