温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Memcache操作类如何在PHP中使用

发布时间:2020-12-15 17:11:00 来源:亿速云 阅读:128 作者:Leah 栏目:开发技术

这篇文章给大家介绍Memcache操作类如何在PHP中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

具体分析如下:

<?php  
    /*  内存缓存管理  
    */ 
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); 
  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());  
}  
   
?>

关于Memcache操作类如何在PHP中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI