200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > php memcache技术 Memcache操作类如何在PHP中使用

php memcache技术 Memcache操作类如何在PHP中使用

时间:2021-03-06 16:04:21

相关推荐

php memcache技术 Memcache操作类如何在PHP中使用

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中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。