程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中Memcache操作類使用方法

PHP中Memcache操作類使用方法

編輯:關於PHP編程

本文章來介紹一個PHP中Memcache使用實例程序,有需要的朋友可參考。  代碼如下 復制代碼 <?php
    /*  author:凹凸曼(lyc)
    /*  email: [email protected]
    /*  內存緩存管理
    */
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(empty($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(empty($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());
}
 
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved