整理php操作memcache緩衝基礎方法,phpmemcache

來源:互聯網
上載者:User

整理php操作memcache緩衝基礎方法,phpmemcache
php操作memcache緩衝方法分享


使用memcache的前提是需要在服務端先配置好memcahche的環境!確認memcahce可以正常串連之後就可以在程式使用了!


<?php/** * Memcache快取作業 * @update http://www.lai18.com */class MCache extends Object implements CacheFace{  private $mem = null; //Mem對象     private $sId = 1;  //servier服務ID     /**   * 初始化Memcache   *   * @return Object   */  public function __construct()  {    if ( !class_exists('Memcache') )    {      throw new QException('PHP extension does not exist: Memcache');    }    $this->mem = new Memcache();  }     /**   * 連結memcahce服務   *   * @access private   * @param  string $key 關鍵字   * @param  string $value 緩衝內容   * @return array   * @update http://www.lai18.com   */  private function connect( $sid )  {    $file = $this->CacheFile();    require $file;    if(! isset($cache) )    {      throw new QException('緩衝設定檔不存在'.$file);    }    $server = $cache[$this->cacheId];    $sid  = isset($sid) == 0 ? $this->sId : $sid;//memcache服務選擇    if ( ! $server[$sid])    {      throw new QException('當前操作的快取服務器設定檔不存在');    }    $host = $server[$sid]['host'];    $port = $server[$sid]['port'];    try {      $this->mem->connect( $host , $port );    } catch (Exception $e) {      exit('memecache串連失敗,錯誤資訊:'. $e->getMessage());    }  }     /**   * 寫入緩衝   *   * @access private   * @param  string $key 關鍵字   * @param  string $value 緩衝內容   * @return array   */  public function set( $key , $value , $sid , $expire = 0)  {    $data = $this->get($key , $sid); //如果已經存在key值    if( $data )     {      return $this->mem->set( $key , $value ,MEMCACHE_COMPRESSED , $expire);    } else {      return $this->mem->add( $key , $value ,MEMCACHE_COMPRESSED , $expire);    }  }     /**   * 讀取緩衝   *   * @access private   * @param  string $key 關鍵字   * @param  int   $sid 選擇第幾台memcache伺服器   * @return array   */  public function get( $key , $sid)  {    $this->connect( $sid );    return $this->mem->get($key);  }     /**   * 清洗(刪除)已經儲存的所有的元素   *   * @access private   * @return array   */  public function flush()  {    $this->connect();    return $this->mem->flush();  }  /**   * 刪除緩衝   *   * @access private   * @param  string $key 關鍵字   * @param  int   $sid 選擇第幾台memcache伺服器   * @return array   */  public function remove( $key , $sid)  {    $this->connect();    return $this->mem->delete($key);  }     /**   * 解構函式   * 最後關閉memcache   */  public function __destruct()  {    /*if(! $this->mem)    {      $this->mem->close();    }*/  }}


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.