加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中Memcache操作类运用方法

发布时间:2023-05-27 13:10:16 所属栏目:PHP教程 来源:
导读:PHP中Memcache操作类运用方法:<?php /* author:凹凸曼(lyc) /* email: jar-c@163.com /* 内存缓存管理 */ class Yc_Memcache{ private $memcache=null; public function __construc

PHP中Memcache操作类运用方法:

<?php  

    /*  author:凹凸曼(lyc)  

    /*  email: jar-c@163.com  

    /*  内存缓存管理  

    */ 

class Yc_Memcache{  

 private $memcache=null;   

   

 public function __construct(){  

 }  

 /**  

    * 连接数据库  

    *  

    * @param mixed $host  

    * @param mixed $port  

    * @param mixed $timeout  

    */ 

 public  function connect($host,$port=11211,$timeout=1){  

  if(!function_exists(memcache_connect)){ return FALSE;}  

  $this->memcache=@memcache_connect($host,$port,$timeout);  

  if(emptyempty($this->memcache)){  

   return FALSE;  

  }else{  

   return TRUE;  

  }  

 }  

    /**  

    * 存放值  

    *  

    * @param mixed $key  

    * @param mixed $var  

    * @param mixed $flag   默认为0不压缩  压缩状态填写:MEMCACHE_COMPRESSED  

    * @param mixed $expire  默认缓存时间(单位秒)  

    */ 

 public function set($key,$var,$flag=0,$expire=10){  

  $f=@memcache_set($this->memcache,$key,$var,$flag,$expire);  

  if(emptyempty($f)){  

   return FALSE;  

  }else{  

   return TRUE;  

  }  

 }  

    /**  

    * 取出对应的key的value  

    *  

    * @param mixed $key  

    * @param mixed $flags  

    * $flags 如果此值为1表示经过序列化,  

    * 但未经过压缩,2表明压缩而未序列化,  

    * 3表明压缩并且序列化,0表明未经过压缩和序列化  

    */ 

 public function get($key,$flags=0){  

  $val=@memcache_get($this->memcache,$key,$flags);  

  return $val;  

 }  

 /**  

    * 删除缓存的key  

    *  

    * @param mixed $key  

    * @param mixed $timeout  

    */ 

 public function delete($key,$timeout=1){  

  $flag=@memcache_delete($this->memcache,$key,$timeout);  

  return $flag;  

 }  

    /**  

    * 刷新缓存但不释放内存空间  

    *  

    */ 

 public function flush(){  

  memcache_flush($this->memcache);  

 }  

    /**  

    * 关闭内存连接  

    *  

    */ 

 public function close(){  

  memcache_close($this->memcache);  

 }  

    /**  

    * 替换对应key的value  

    *  

    * @param mixed $key  

    * @param mixed $var  

    * @param mixed $flag  

    * @param mixed $expire  

    */ 

 public function replace($key,$var,$flag=0,$expire=1){  

  $f=memcache_replace($this->memcache,$key,$var,$flag,$expire);  

  return $f;  

 }  

    /**  

    * 开启大值自动压缩  

    *  

    * @param mixed $threshold 单位b  

    * @param mixed $min_saveings 默认值是0.2表示20%压缩率  

    */ 

 public function setCompressThreshold($threshold,$min_saveings=0.2){  

  $f=@memcache_set_compress_threshold($this->memcache,$threshold,$min_saveings);  

  return $f;  

 }  

    /**  

    * 用于获取一个服务器的在线/离线状态  

    *  

    * @param mixed $host  

    * @param mixed $port  

    */ 

 public function getServerStatus($host,$port=11211){  

  $re=memcache_get_server_status($this->memcache,$host,$port);  

  return $re;  

 }  

    /**  

    * 缓存服务器池中所有服务器统计信息  

    *  

    * @param mixed $type 期望抓取的统计信息类型,可以使用的值有{reset, malloc, maps, cachedump, slabs, items, sizes}  

    * @param mixed $slabid  cachedump命令会完全占用服务器通常用于 比较严格的调  

    * @param mixed $limit 从服务端获取的实体条数  

    */ 

 public function getExtendedStats($type='',$slabid=0,$limit=100){  

  $re=memcache_get_extended_stats($this->memcache,$type,$slabid,$limit); //开源代码Cuoxin.com 

  return $re;  

 }  

}  

/***********测试区域********************/ 

$mem=new Yc_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());  

}    

?>

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!