Yii的自帶快取的使用

2022-07-13 08:00:14 字數 2157 閱讀 4067

yii的自帶快取都繼承ccache 類, 在使用上基本沒有區別

快取基礎類 ccache 提供了兩個最常用的方法:set() 和 get()。

要在快取中儲存變數 $value,我們選擇乙個唯一 id 並呼叫 set() 來儲存它:

被快取的資料會一直保留在快取中,直到因一些快取策略而被刪除(比如快取空間滿了,刪除最舊的資料)。要改變這一行為,我們還可以在呼叫 set() 時加乙個過期引數,這樣資料過一段時間就會自動從快取中清除。

在快取中保留該值最多 30 秒

當我們稍後需要訪問該變數時(不管是不是同一 web 請求),我們呼叫 get() (傳入 id)來從快取中獲取它。如果返回值為 false,說明該快取不可用,需要我們重新生成它。

);if($value===false

)$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. 在框架中的使用

););

資料庫快取的使用

1. 編輯配置檔案config/main.php 新增dbcache配置

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. 在框架中的使用

);檔案快取的使用

1. 編輯配置檔案config/main.php 新增dbcache配置

//

'components'=>array

( 'filecache'=>array

( 'class'=>'system.caching.cfilecache',

//我們使用cfilecache實現快取,快取檔案存放在runtime資料夾中

'directorylevel'=>'2', //

快取檔案的目錄深度

),),

2. 在框架中的使用

);apc使用

1. 編輯配置檔案config/main.php 新增dbcache配置

'components'=>array

( 'class' => 'system.caching.capccache',),

Yii框架自帶快取的使用方法

yii的自帶快取都繼承ccache 類,在使用上基本沒有區別 快取基礎類 ccache 提供了兩個最常用的方法 set 和 get 要在快取中儲存變數 value,我們選擇乙個唯一 id 並呼叫 set 來儲存它 被快取的資料會一直保留在快取中,直到因一些快取策略而被刪除 比如快取空間滿了,刪除最舊...

Yii 片段快取的使用

yii沒有外掛程式支援頁面靜態化,但很好的支援頁面片段快取,雖然仍然需要經過php處理,考慮到網路因素,已經能和靜態頁面達到差不多的效能效果。下面是 示範,解決的問題是根據使用者會話情況來判斷快取的使用 begincache user div array varybysession 1 如果使用的是...

Yii 自帶的分頁例項

yii自帶的分頁很好用,簡單的幾行 就能把分頁搞出來,唯一惱火的是只能寫在controller中,所以有時候controller中的方法有點臃腫。廢話少說,上 上圖。一 例項 1 控制器中的 紅色的 是分頁必須的 c new cdbcriteria c order tid if status if ...