php操作redis緩衝方法

來源:互聯網
上載者:User
<span style="font-size:12px;"><?php/** * Redis快取作業 * @author hxm * @version 1.0 * @since 2015.05.04 */class RCache extends Object implements CacheFace {  private $redis = null; //redis對象      private $sId  = 1;  //servier服務ID      private $con  = null;//連結資源      /**   * 初始化Redis   *   * @return Object   */  public function __construct()  {    if ( !class_exists('Redis') )    {      throw new QException('PHP extension does not exist: Redis');    }    $this->redis = new Redis();  }      /**   * 連結memcahce服務   *   * @access private   * @param  string $key 關鍵字   * @param  string $value 緩衝內容   * @return array   */  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->redis->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->redis->getset( $key , $value);    } else {      return $this->redis->set( $key , $value);    }  }      /**   * 讀取緩衝   *   * @access private   * @param  string $key 關鍵字   * @param  int   $sid 選擇第幾台memcache伺服器   * @return array   */  public function get( $key , $sid)  {    $this->connect( $sid );    return $this->redis->get($key);  }      /**   * 清洗(刪除)已經儲存的所有的元素   *   * @access private   * @return array   */  public function flush()  {    $this->connect();    return $this->redis->flushall();  }  /**   * 刪除緩衝   *   * @access private   * @param  string $key 關鍵字   * @param  int   $sid 選擇第幾台memcache伺服器   * @return array   */  public function remove( $key , $sid)  {    $this->connect();    return $this->redis->del($key);  }      /**   * 解構函式   * 最後關閉memcache   */  public function __destruct()  {    if($this->redis)    {      $this->redis->close();    }  }}</span>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.