• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發php教程 → PHP開源框架Yii 緩存配置實例

    PHP開源框架Yii 緩存配置實例

    相關軟件相關文章發表評論 來源:西西整理時間:2012/12/17 8:39:45字體大?。?em class="fontsize">A-A+

    作者:西西點擊:16次評論:8次標簽: PHP

    • 類型:源碼相關大?。?i>139.2M語言:中文 評分:10.0
    • 標簽:
    立即下載

    作為PHP的開源框架,自然少不了對緩存的支持。Yii緩存可以在不同的級別使用。在最低級別,可用來緩存單個數據(數據緩存)。往上一級,我們緩存一個由視圖腳本生成的頁面片斷(片段緩存)。在最高級別,可存儲整個頁面以便需要的時候直接從緩存讀取。本文說明頁面緩存的配置及實現效果;

    實現分為2步;

    1. 在config文件加入緩存組件.

        'cache' => array (

            'class' => 'system.caching.CFileCache',

             'directoryLevel' => 2,

        ),

    class標識需要使用的緩存媒介,用途比較廣的類型基本都有支持:

    CMemCache: 使用 PHP memcache 擴展.

    CApcCache: 使用 PHP APC 擴展.

    CDbCache: 使用一張數據庫表來存儲緩存數據。

    CFileCache: 使用文件來存儲緩存數據。 特別適用于大塊數據(例如頁面)。

    當然,yii也可以支持Redis,需要裝一個插件:

    http://www.yiibase.com/download/view/32.html

    本文實例使用的是文件緩存,對于文件緩存,緩存到的位置為protected/runtime/;directoryLevel設置緩存文件的目錄深度;如果緩存頁面特別多,這個值需要設置大點,否則每個目錄下的頁面會很多;

    2. 在要做緩存的控制器里定義過濾器。

       public function filters() {

                return array (

                    array (

                        'COutputCache + post, list',

                        'duration' => 3600,

                        'varyByParam' => array('id','page'),

        'dependency' => array(

                        'class'=>'CDbCacheDependency',

                        'sql'=>'SELECT MAX(id) FROM me115_book',

                    )

                );

            }

    COutputCache 是用于處理緩存的類,如果只填'COutputCache',則控制器里所有action都會通過緩存過濾,定義'COutputCache + post, list',表示只對以下方法進行緩存:actionPost, actionList

    duration 是緩存的時間,單位是秒,

    varyByParam 是指定一系列GET參數名稱列表, 使用相應的值去確定緩存內容的版本,即同一個action用于區分是不同頁面的的參數,此處我以id和page來區分不同頁面。

        除varyByParam以外,還可以采用其他的條件來區分頁面:

        varyByExpression:指定緩存內容通過自定義的PHP表達式的結果而變化

        varyByRoute:指定緩存內容基于請求的路由不同而變化 (controller 和 action)

        varyBySession:指定是否緩存內容. 因用戶session不同而變化

    dependency'指定緩存失效依賴關系:可指定文件或數據庫;本文采用的是數據庫依賴CDbCacheDependency;

       本例指定的是數據庫,通過數據表的某個值的變化來確定緩存是否失效。例如,如果在表中新增了一條me115_book記錄,即使緩存才過了2分鐘(<3600),仍然判斷為失效,從而查詢數據庫,生成整個頁面,再次緩存;

    檢查:

    查看當前頁面是否緩存,可以dump輸出一個當前服務器時間,從而檢查當前頁面是否已緩存;

    優化效果:

    優化站點為一個博客站點(me115.com),除了DNS解析轉接外,未進行任何優化,優化前的數據為:

    首字節時間為842ms;

    采用頁面緩存之后的效果:

    首字節時間為376ms;html生成的時間大大縮短,后臺時間減少了一倍。

    當然,通過本圖可以看到整個站點的用時還是比較長,主要是在頁面組件(css/js/圖片)上的下載耗費了不少時間,后續將針對這方面進行前端優化;

      php源碼
      (36)php源碼
      php是英文超級文本預處理語言HypertextPreprocessor的縮寫。php源碼是一種網站搭建數據源碼,支持html內嵌操作,通常用于網站平臺的搭建。php源碼上手簡單,模板化強,可以直接將整套功能性系統代碼嵌入到你的程序中來。本次為大家帶來php源碼資源整合,包含了各類服務器網站搭建源碼,php源碼教程軟件以及一些功能性的擴展包資源。有相關php源碼搭建使用需求的朋友們不妨試試吧!php源碼功能優勢:1、PHP是開放的源代碼:所有的PH...更多>>

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(8)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)

      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>