天天看點

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

緩存分類:

片段緩存

頁面緩存

動态緩存

資料緩存

【商品清單和詳細頁面制作】

【片段緩存】

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

進行商品清單的獨立區域緩存,片段緩存

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

我們的緩存是檔案緩存,緩存的資訊在目錄runtime存放

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

使用緩存步驟:

1. 在程式裡邊設定緩存

2. 在主配置檔案main.php裡邊配置緩存元件cache(在這個地方決定使用哪種緩存)

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存
Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

設定緩存檔案的過期時間

Duration   ()

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

我們為緩存檔案設定過期時間,在沒有過期的時候系統都會使用緩存檔案,如果已經過期,那麼系統要重新生成緩存檔案。

緩存變化:

我們的商品清單有實作片段緩存,那麼在通路其他其它頁碼資訊的時候也是通路這個緩存頁面,因為,每頁資訊的路由都是一樣的(goods/category),那麼系統會誤認為目前系統通路的頁面是一個頁面。當時頁面的page參數是不一樣的。

是以我們需要根據參數的變化生成不同的緩存檔案。

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存
Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

緩存依賴:

我們的商品資訊緩存可以自定義設定過期時間,根據具體需求業務類型決定,如果商品資訊在沒有過期之内已經變化了(資料庫給更改的),這時緩存檔案還沒有過期,我們需要及時更新緩存檔案(即使沒有過期)以免誤導客戶,這種情況我們可以通過緩存依賴來實作。

緩存依賴條件:我們依賴的條件是總的商品價格,如果總價格發生變化,那麼有可能是商品的資訊有增加或減少的情況,或商品價格被修改。

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存
Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

如果一個商品價格增加5元,另一個商品價格減少5元,這樣是不會更新緩存的,因為商品總價格沒有發生變化。

片段緩存步驟:

1. 在main.php裡邊設定cache元件

2. 實作片段緩存(beginCache  endCache)

3. 緩存變化

4. 緩存依賴

Duration、varyByParam、dependency這個幾個屬性在哪?

System.web.widgets.CoutputCache.php

【頁面緩存】

1. 是否可以通過“頁面緩存”實作

答:這樣是不可以,因為布局檔案還沒有被緩存

2. 我們是否可以再布局進行頁面緩存

答:理論上不可以,視圖先加載,布局後加載

視圖:0.05135800 1369315232  時間小,先加載

布局:0.05197600 1369315232  時間打,後加載

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

使用者通路控制實作頁面緩存

Filters

accessControl

accessRules

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

【資料緩存】

具體就是可以緩存變量資訊

變量 緩存的使用

設定: Yii::app()->cache->set(名字,值,過期時間);

使用:Yii::app()->cache->get(名字);

删除:Yii::app()->cache->delete(名字);

清空:Yii::app()->cache->flush();

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

資料緩存應用(重要):

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

【動态緩存】

 Smarty 動态緩存  insert

 我們可以緩存整個頁面,但是隻有一個小的區域,會根據不同的條件顯示不同的資訊,這個小的區域我們需要設定動态緩存。

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

$this -> beginCache()

中間有區域需要動态緩存

回調函數:就是控制器裡邊的普通方法

$this -> renderDynamic(回調函數);

$this -> benCache()

Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存
Yii架構之緩存介紹、商品清單和詳情頁制作、片段緩存(緩存變化和依賴)、頁面緩存、資料緩存、動态緩存

這個show_name()控制器要放入普通控制器父類裡邊Controller,這樣代碼可以重複利用。

總結:

緩存

1. main.php配置緩存元件cache

2. 緩存類型:片段緩存、頁面緩存、資料緩存、動态緩存

3. 緩存存媒體:檔案、資料庫、記憶體

片段緩存:beginCache()     

頁面緩存:filters過濾器實作

4. 具體變量緩存

Yii::app()->cache->set(名字,值,過期時間)

     Get(名字)

     Delete(名字)

      Flush()清空緩存,(資料、片段、頁面都會清空)