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

2021-09-01 10:27:39 字數 2040 閱讀 8269

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

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

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

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

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

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

if($value===false)

為乙個要快取的變數選擇 id 時,確保該 id 在應用中是唯一的。不必保證 id 在跨應用的情況下保證唯一,因為快取元件有足夠的智慧型來區分不同應用的快取 id。

要從快取中刪除乙個快取值,呼叫 delete();要清空所有快取,呼叫 flush()。呼叫 flush() 時要非常小心,因為它會把其它應用的快取也清空。

$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 來儲存它 被快取的資料會一直保留在快取中,直到因一些快取策略而被刪除 比如快取空間滿了,刪除最舊...

快取的使用方法

快取的使用方法 a 快取的作用 減少資料庫壓力 使用者互動比較 提高訪問速度 b tp對快取的支援 支援的快取型別包括file memcache wincache sqlite redis和xcache。cache 驅動方式 type file 快取儲存目錄 path cache path,快取字首...

集合框架的使用方法

list與set都是介面collection的子介面,collection源 中有一些幫助實現基本的訪問操作的抽象方法,主要有add addall iterator remove size 在collection的子介面list set以及子類arraylist linkedlist vector ...