Yii框架調用緩存使用方法

Yii的自帶緩存都繼承CCache 類, 在使用上基本沒有區別
php

緩存基礎類 CCache 提供了兩個最經常使用的方法:set() 和 get()。
要在緩存中存儲變量 $value,咱們選擇一個惟一 ID 並調用 set() 來存儲它:
sql

Yii::app()->cache->set($id, $value);

被緩存的數據會一直保留在緩存中,直到因一些緩存策略而被刪除(好比緩存空間滿了,刪除最舊的數據)。要改變這一行爲,咱們還能夠在調用 set() 時加一個過時參數,這樣數據過一段時間就會自動從緩存中清除。

// 在緩存中保留該值最多 30 秒
數據庫

Yii::app()->cache->set($id, $value, 30);

當咱們稍後須要訪問該變量時(無論是否是同一 Web 請求),咱們調用 get() (傳入 ID)來從緩存中獲取它。若是返回值爲 false,說明該緩存不可用,須要咱們從新生成它。
數組

$value=Yii::app()->cache->get($id);
if($value===false)
{
    // 由於在緩存中沒找到,從新生成 $value
    // 再緩存一下以備下次使用
    // Yii::app()->cache->set($id,$value);
}

爲一個要緩存的變量選擇 ID 時,確保該 ID 在應用中是惟一的。沒必要保證 ID 在跨應用的狀況下保證惟一,由於緩存組件有足夠的智能來區分不一樣應用的緩存 ID。
要從緩存中刪除一個緩存值,調用 delete();要清空全部緩存,調用 flush()。調用 flush() 時要很是當心,由於它會把其它應用的緩存也清空。
提示: 由於 CCache 實現了 ArrayAccess 接口,能夠像數組同樣使用緩存組件。例如:
緩存

$cache=Yii::app()->cache;
$cache['var1']=$value1;  // 至關於: $cache->set('var1',$value1);
$value2=$cache['var2'];  // 至關於: $value2=$cache->get('var2');
要使用這些緩存也很簡單,只要服務器支持, 而後通進簡單的修改配置文件便可使用
一. Memcache 的使用
1. 編輯配置文件config/main.php 添加memcache配置
array(
    'components'=>array(
        'memcache'=>array(
            'class'=>' system.caching.CMemCache',
            'servers'=>array(
                array(
                    'host'=>'server1',
                    'port'=>11211,
                    'weight'=>60,
                ),
                array(
                    'host'=>'server2',
                    'port'=>11211,
                    'weight'=>40,
                ),
            ),
        ),
    ),
)

2. 在框架中的使用
服務器

Yii::app()->memcache ->set($key, $value, $expire);
Yii::app()->memcache ->get($key);
Yii::app()->memcache ->deleteValue($key);

二. 數據庫緩存的使用
1. 編輯配置文件config/main.php 添加dbcache配置
app

return array(
    ......
    'components'=>array(
        ......
        'dbcache'=>array(
            'class'=>' system.caching.CDbCache',
        ),
        'db'=>array(
            'class'=>'system.db.CDbConnection',
            'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db',
            'schemaCachingDuration'=>3600,
        ),
    ),
);

2. 在框架中的使用
框架

Yii::app()->dbcache ->set($key, $value, $expire);
Yii::app()->dbcache ->get($key);
三. 文件緩存的使用
1. 編輯配置文件config/main.php 添加dbcache配置
// application components
'components'=>array(
       'filecache'=>array(
         'class'=>'system.caching.CFileCache',    
         //咱們使用CFileCache實現緩存,緩存文件存放在runtime文件夾中
         'directoryLevel'=>'2',   //緩存文件的目錄深度
       ),
),

2. 在框架中的使用
ide

Yii::app()->filecache ->set($key, $value, $expire);
Yii::app()->filecache ->get($key);

四.    APC使用
1.    編輯配置文件config/main.php 添加dbcache配置
component

'components'=>array(
       'class' => 'system.caching.CApcCache',
),
相關文章
相關標籤/搜索