久久久久久久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進行加密解密方法,對此有興趣的朋友可以學習下。
主站蜘蛛池模板: www性色| 欧洲亚洲精品久久久久 | 婷婷在线网站 | 久久久亚洲一区 | 日韩中文字幕第一页 | 色偷偷人人澡人人爽人人模 | 中文字幕国产精品 | 337p日本欧洲亚洲大胆鲁鲁 | 国产精品久久在线观看 | caoporn免费在线视频 | 亚洲第一成年免费网站 | 欧美一级免费 | 国产亚洲精品久久久久久牛牛 | 狠狠干网 | 国内精品视频免费观看 | 男人天堂99 | 中文字幕av在线一二三区 | 欧美精品在线播放 | 成人免费大片黄在线播放 | 国产精品国产a级 | 91视视频在线观看入口直接观看 | 青青草av | 久久精品a| 国产精品海角社区在线观看 | 中文字幕精品一区久久久久 | 亚洲精品天堂 | 中文成人无字幕乱码精品 | 欧美一级在线观看 | 免费一区| 美日韩精品 | 91一区| 国产精品福利在线 | 久久久精品一区 | 欧美在线高清 | 亚洲国产精品久久久久婷婷老年 | 激情一区二区三区 | 99精品国产一区二区青青牛奶 | 天天草天天干天天 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 精品国产一区一区二区三亚瑟 | 国产精品美女久久久久久免费 |