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

PHP中Memcache操作類及用法實例

編輯:PHP綜合

本文實例講述了PHP中Memcache操作類及用法。分享給大家供大家參考。具體分析如下:

復制代碼 代碼如下:
<?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()); 

  
?>

希望本文所述對大家的PHP程序設計有所幫助。

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