php操作memcache緩衝基礎方法

來源:互聯網
上載者:User
<?php/** * Memcache<a href="http://www.php1.cn/category/79.html">緩衝</a>操作 * @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 <a href="http://www.php1.cn/category/79.html">緩衝</a>內容   * @return array   * @update http://www.lai18.com   */  private function connect( $sid )  {    $file = $this->CacheFile();    require $file;    if(! isset($cache) )    {      throw new QException('<a href="http://www.php1.cn/category/79.html">緩衝</a>設定檔不存在'.$file);    }    $server = $cache[$this->cacheId];    $sid  = isset($sid) == 0 ? $this->sId : $sid;//memcache服務選擇    if ( ! $server[$sid])    {      throw new QException('當前操作的<a href="http://www.php1.cn/category/79.html">緩衝</a>伺服器設定檔不存在');    }    $host = $server[$sid]['host'];    $port = $server[$sid]['port'];    try {      $this->mem->connect( $host , $port );    } catch (Exception $e) {      exit('memecache串連失敗,錯誤資訊:'. $e->getMessage());    }  }       /**   * 寫入<a href="http://www.php1.cn/category/79.html">緩衝</a>   *   * @access private   * @param  string $key 關鍵字   * @param  string $value <a href="http://www.php1.cn/category/79.html">緩衝</a>內容   * @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);    }  }       /**   * 讀取<a href="http://www.php1.cn/category/79.html">緩衝</a>   *   * @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();  }  /**   * 刪除<a href="http://www.php1.cn/category/79.html">緩衝</a>   *   * @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();    }*/  }}
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    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.