首頁  >  文章  >  後端開發  >  Yii框架官方指南系列28—快取:概覽

Yii框架官方指南系列28—快取:概覽

黄舟
黄舟原創
2017-02-15 09:13:541021瀏覽



快取是提升Web應用效能的簡單有效的方式。透過將相對靜態的資料儲存到快取並在收到請求時取回緩存,我們便節省了產生這些資料所需的時間。

在 Yii 中使用快取主要包括配置並存取一個應用元件。 下面的應用程式設定設定了一個使用兩個 memcache 快取伺服器的快取元件。


array(
    ......
    'components'=>array(
        ......
        'cache'=>array(
            'class'=>'system.caching.CMemCache',
            'servers'=>array(
                array('host'=>'server1', 'port'=>11211, 'weight'=>60),
                array('host'=>'server2', 'port'=>11211, 'weight'=>40),
            ),
        ),
    ),
);

當應用程式運作時,快取元件可透過 Yii::app()->cache 存取。

Yii 提供了不同的快取元件,可以將快取資料儲存到不同的媒介中。例如, CMemCache 元件封裝了 PHP 的 memcache 擴充並使用記憶體作為快取儲存媒介。 CApcCache 元件封裝了 PHP APC 擴充; 而 CDbCache 元件會將快取的資料存入資料庫。以下是可用快取元件的清單:

  • CMemCache: 使用 PHP memcache 擴充.

  • CApcCache: 使用 PHP APC 擴充。

  • 注意,這個是從 1.0.1 版本開始支援的。

  • CEAcceleratorCache: 使用 PHP EAccelerator 擴充.

  • CDbCache: 使用一個資料表儲存快取資料。預設情況下,它將建立並使用在 runtime 目錄下的一個 SQLite3 資料庫。 你也可以透過設定其 connectionID 屬性來指定一個給它使用的資料庫。

  • CZendDataCache: 使用 Zend Data Cache 作為後台快取媒介。注意,這個是從 1.0.4 版本開始支援的。

  • CFileCache: 使用檔案儲存快取資料。這個特別適合用於儲存大塊資料(例如頁面)。注意,這個是從 1.0.6 版本開始支援的。

  • CDummyCache: 目前 dummy 快取並不實現快取功能。此元件的目的是用於簡化那些需要檢查快取可用性的程式碼。 例如,在開發階段或伺服器尚未支援實際的快取功能,我們可以使用此快取元件。當啟用了實際的快取支援後,我們可以切換到使用對應的快取元件。 在這兩種情況中,我們可以使用相同的程式碼

    Yii::app()->cache->get($key) 來取得資料片段而不需要擔心 Yii::app()->cache 可能會是 null。此元件從 1.0.5 版開始支援。

提示: 由於所有的這些快取元件均繼承自同樣的基類 CCache,因此無需改變使用快取的那些程式碼就可以切換到使用另一種快取方式。

快取可以用於不同的等級。在最低層級中,我們使用快取儲存單一資料片段,例如變量,我們將此稱為 

資料快取(data caching)。在下一個層級中,我們在快取中儲存一個由視圖腳本的一部分所產生的頁面片段。 而在最高層級中,我們將整個頁面儲存在快取中並在需要時取回。

在接下來的幾個小節中,我們會詳細講解如何在這些關卡中使用快取。

注意: 依定義,快取是一個不穩定的儲存媒介。即使沒有逾時,它也不確保快取資料一定存在。 因此,不要將快取作為持久性記憶體使用。 (例如,不要使用快取儲存 Session 資料)。

快取系列文章:

Yii框架官方指南系列29—快取:資料快取

Yii框架官方指南系列30-快取:片段快取(Fragment Caching)

Yii框架官方指南系列31—快取:頁面快取

Yii框架官方指南系列32-快取:動態內容(Dynamic Content)

以上就是Yii框架官方指南系列28-快取:概覽的內容,更多相關內容請關注PHP中文網(www .php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn