yii 快取技術

2022-07-19 05:57:16 字數 1607 閱讀 7443

---恢復內容開始---

yii快取技術

閒來無事,研究下 yii快取。

快取是用於提公升**效能的一種即簡單又有效的途徑。通過儲存相對靜態的資料至快取以備所需,我們可以省去生成這些資料的時間。

在 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

),              

),),),

);

快取可以在不同的級別使用。在最低級別,我們使用快取來儲存單個資料,比如乙個變數,我們把它叫做 資料快取。往上一級,我們快取乙個由檢視指令碼生成的頁面片斷。在最高端別,我們儲存整個頁面以便需要的時候直接從快取讀取。

接下來我們將闡述如何在這些級別上使用快取。

注意: 按定義來講,快取是乙個不穩定的儲存媒介,它不保證快取一定存在——不管該快取是否過期。所以,不要使用快取進行持久儲存(比如,不要使用快取來儲存 session 資料)。

資料快取

資料快取也就是在快取中儲存一些 php 變數,過一會再取出來。快取基礎類 ccache 提供了兩個最常用的方法:set() 和get()。

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

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

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

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

要從快取中刪除乙個快取值,呼叫 delete();

要清空所有快取,呼叫 flush()。呼叫 flush() 時要非常小心,因為它會把其它應用的快取也清空。

$cache['var1']=$value1; //

相當於: $cache->set('var1',$value1);

$value2=$cache['var2']; //

相當於: $value2=$cache->get('var2');

---恢復內容結束---

YII快取操作

檔案依賴 dependency new yii caching filedependency filename hw.txt cache add file key hello world 3000,dependency dependency決定了當快取檔案發生修改時也會失效 表示式的依賴 depen...

Yii框架 快取

1 yii框架的快取 主要就是 memcache 和 cache 兩種 yii的自帶快取都繼承ccache 類,在使用上基本沒有區別 2 使用方法 1 在config配置檔案main.php檔案中配置如下 cache array class system.caching.cfilecache dir...

快取技術之 Yii2效能優化之 快取依賴

yii中的快取依賴,簡單來說就是將快取和另外乙個東西繫結在一起,如果另外乙個東西發生變化,那麼快取也將發生變化。有點兒類似於js中的觸發事件 但是也不那麼像 快取的變動是依賴的東西所導致的。依賴可以是檔案 資料庫 甚至是一些表示式。功能十分強大。yii提供了5中依賴方法,我們這裡介紹其中的3種常用依...