이 문서의 예에서는 PHP의 Memcache 작업 클래스와 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
/* 内存存储管理
*/
类 Yc_Memcache{
私有 $memcache=null;
公共函数 __construct(){
}
/**
* 连接数据库
*
* @param mixed $host
* @param mixed $port
* @param mixed $timeout
*/
公共功能连接($主机,$端口= 11211,$超时= 1){
if(!function_exists(memcache_connect)){ return FALSE;}
$this->memcache=@memcache_connect($host,$port,$timeout);
if(emptyempty($this->memcache)){
返回假;
}其他{
返回真;
}
}
/**
* 存放值
*
* @param mixed $key
* @param mixed $var
* @param mixed $flag 默认为0不压缩 压缩状态填写:MEMCACHE_COMPRESSED
* @param mixed $expire 默认缓存时间(单位秒)
*/
公共函数集($key,$var,$flag=0,$expire=10){
$f=@memcache_set($this->memcache,$key,$var,$flag,$expire);
if(emptyempty($f)){
返回假;
}其他{
返回真;
}
}
/**
* 取出对应的key的value
*
* @param mixed $key
* @param mixed $flags
* $flags 如果此值为1表示经过序列化,
* 但未经过压缩,2表明压缩而未序列化,
* 3表明压缩并且序列化,0表明未经过压缩和序列化
*/
公共函数 get($key,$flags=0){
$val=@memcache_get($this->memcache,$key,$flags);
返回$val;
}
/**
* 删除缓存的key
*
* @param mixed $key
* @param mixed $timeout
*/
公共函数删除($key,$timeout=1){
$flag=@memcache_delete($this->memcache,$key,$timeout);
返回$标志;
}
/**
* 刷新缓存但不释放内存空间
*
*/
公共函数flush(){
memcache_flush($this->memcache);
}
/**
* 关闭内存连接
*
*/
公共函数 close(){
memcache_close($this->memcache);
}
/**
* 替换对应key的value
*
* @param mixed $key
* @param mixed $var
* @param mixed $flag
* @param mixed $expire
*/
公共函数替换($key,$var,$flag=0,$expire=1){
$f=memcache_replace($this->memcache,$key,$var,$flag,$expire);
返回$f;
}
/**
* 开启大值自动压缩
*
* @param mixed $threshold 单位b
* @param mixed $min_saveings 默认值是0.2表示20%压缩率
*/
公共函数 setCompressThreshold($threshold,$min_saveings=0.2){
$f=@memcache_set_compress_threshold($this->memcache,$threshold,$min_saveings);
返回$f;
}
/**
* 用于获取服务器的在线/离线状态
*
* @param 혼합 $host
* @param $port 혼합
*/
공개 함수 getServerStatus($host,$port=11211){
$re=memcache_get_server_status($this->memcache,$host,$port);
$re를 반환합니다.
}
/**
* 서버 풀 내 모든 서버의 캐시 통계
* *
* @param mix $type 캡쳐가 예상되는 통계정보의 종류는 {reset, malloc,map,cachedump,slabs,item,size} 입니다
* @param 혼합 $slabid 캐시 덤프 명령은 서버를 완전히 점유하며 일반적으로 보다 엄격한 조정에 사용됩니다
* @param mix $limit 서버에서 얻은 엔터티 수
*/
공개 함수 getExtendedStats($type='',$slabid=0,$limit=100){
$re=memcache_get_extended_stats($this->memcache,$type,$slabid,$limit);
$re를 반환합니다.
}
}
/***********테스트 영역*************************/
$mem=새로운 Yc_Memcache();
$f=$mem->connect('125.64.41.138',12000);
var_dump($f);
if($f){
// $mem->setCompressThreshold(2000,0.2);
$mem->set('키','안녕하세요',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('키');
echo '
';
print_r($mem->getExtendedStats());
}
?>