久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

php實現的redis緩存類定義與使用方法示例

這篇文章主要介紹了php實現的redis緩存類,結合具體實例形式分析了php封裝的針對redis緩存類定義與使用相關操作技巧,需要的朋友可以參考下

本文實例講述了php實現的redis緩存類定義與使用方法。分享給大家供大家參考,具體如下:

php+redis緩存類

<?php
class redisCache {
  /**
  * $host : redis服務器ip
  * $port : redis服務器端口
  * $lifetime : 緩存文件有效期,單位為秒
  * $cacheid : 緩存文件路徑,包含文件名
  */
  private $host;
  private $port;
  private $lifetime;
  private $cacheid;
  private $data;
  public $redis;
  /**
  * 析構函數,檢查緩存目錄是否有效,默認賦值
  */
  function __construct($lifetime=1800) {
    //配置
    $this->host = "127.0.0.1";
    $this->port = "6379";
    $redis = new Redis();
    $redis->pconnect($this->host,$this->port);
    $this->redis=$redis;
    $this->cacheid = $this->getcacheid();
    $this->lifetime = $lifetime;
    $this->data=$redis->hMGet($this->cacheid, array('content','creattime'));
    //print_r($this->redis);
    //print_r($this->data);
  }
  /**
  * 檢查緩存是否有效
  */
  private function isvalid(){
    $data=$this->data;
    if (!$data['content']) return false;
    if (time() - $data['creattime'] > $this->lifetime) return false;
    return true;
  }
  /**
  * 寫入緩存
  * $mode == 0 , 以瀏覽器緩存的方式取得頁面內容
  */
  public function write($mode=0,$content='') {
    switch ($mode) {
      case 0:
        $content = ob_get_contents();
        break;
      default:
        break;
    }
    ob_end_flush();
    try {
      $this->redis->hMset($this->cacheid, array('content'=>$content,'creattime'=>time()));
      $this->redis->expireAt($this->cacheid, time() + $this->lifetime);
    }
    catch (Exception $e) {
      $this->error('寫入緩存失敗!');
    }
  }
  /**
  * 加載緩存
  * exit() 載入緩存后終止原頁面程序的執行,緩存無效則運行原頁面程序生成緩存
  * ob_start() 開啟瀏覽器緩存用于在頁面結尾處取得頁面內容
  */
  public function load() {
    if ($this->isvalid()) {
      echo $this->data['content'];
      exit();
    }
    else {
      ob_start();
    }
  }
  /**
  * 清除緩存
  */
  public function clean() {
    try {
      $this->redis->hDel($this->cacheid, array('content','creattime'));
    }
    catch (Exception $e) {
      $this->error('清除緩存失敗!');
    }
  }
  /**
  * 取得緩存文件路徑
  */
  private function getcacheid() {
    return $this->dir.md5($this->geturl()).$this->ext;
  }
  /**
  * 取得當前頁面完整url
  */
  private function geturl() {
    $url = '';
    if (isset($_SERVER['REQUEST_URI'])) {
      $url = $_SERVER['REQUEST_URI'];
    }
    else {
      $url = $_SERVER['Php_SELF'];
      $url .= empty($_SERVER['QUERY_STRING'])?'':'?'.$_SERVER['QUERY_STRING'];
    }
    return $url;
  }
  /**
  * 輸出錯誤信息
  */
  private function error($str) {
    echo '<div style="color:red;">'.$str.'</div>';
  }
}
//用法:
// require_once('redisCache.php');
// $cache = new redisCache(10); //設置緩存生存期
// if ($_GET['clearCache']) $cache->clean();
// else $cache->load(); //裝載緩存,緩存有效則不執行以下頁面代碼
// //頁面代碼開始
// //頁面代碼結束
// $cache->write(); //首次運行或緩存過期,生成緩存
?>

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php+redis數據庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

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

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP有序表查找之插值查找算法,簡單分析了插值查找算法的概念、原理并結合實例形式分析了php實現針對有序表插值查找的相關操作技巧,需要的朋友可以參考下
下面小編就為大家分享一篇ThinkPHP整合datatables實現服務端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP實現APP微信支付的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP實現的多維數組排序算法,結合實例形式對比分析了php針對多維數組及帶有鍵名的多維數組進行排序相關操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了php結合ajaxuploadfile實現無刷新文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本篇文章給大家詳細介紹了PHP開發接口使用RSA進行加密解密方法,對此有興趣的朋友可以學習下。
主站蜘蛛池模板: 91亚洲国产成人久久精品网站 | 天堂中文资源在线 | 午夜在线 | 黄频视频 | 欧美一级二级视频 | 日韩高清一区二区 | 一区二区三区高清 | 欧美久久一区二区三区 | 国产精品成人免费 | 91欧美| 国产精品久久久久久吹潮日韩动画 | 狠狠狠色丁香婷婷综合久久五月 | 精品久久视频 | 日本精品一区二区在线观看 | 国产精品久久久久久久久久免费看 | 2023亚洲天堂 | 亚洲性在线 | 亚洲免费在线 | 欧美日韩亚洲视频 | 欧美www在线| 日韩av在线免费 | 日韩中文在线 | 国产精品99 | 操久久 | 91在线视频免费观看 | 一区二区视频在线 | 亚洲成人av在线播放 | 在线一级片 | 国产欧美视频一区 | 日韩在线 | 美女视频一区二区三区 | 一区二区亚洲 | 欧美日韩视频在线第一区 | 精品在线 | 欧洲一区二区在线 | 亚洲综合色丁香婷婷六月图片 | 国产精品视频在 | 一区二区三区视频在线观看 | 国内精品久久久久 | 孕妇一级毛片 | 亚洲精品一区二三区不卡 |