首頁 >後端開發 >php教程 >對於Yii CFileCache 取得不到值的原因分析

對於Yii CFileCache 取得不到值的原因分析

不言
不言原創
2018-06-22 11:26:051423瀏覽

這篇文章主要介紹了Yii CFileCache 獲取不到值的原因分析,非常不錯,具有參考借鑒價值,需要的朋友參考下

我在配置文件裡面配置了

‘cache'=>array(
‘class'=>'system.caching.CFileCache',
),

在控制器內設定了

return array(
array(
‘COutputCache+pro',
‘duration'=>86400,
‘varyByParam'=>array(‘id'),
),

然後開啟了資料庫'schemaCachingDuration'= >3600,

初次使用是有快取檔案的而且發現確實加快不少存取速度

但時間一長在某個時間段也許是10分鐘後我就發現runtime/cache 下面的快取檔案突然就沒了

不清楚是什麼原因追蹤了好長時間才發現這個問題

另外還發現快取目錄裡面還有資料夾什麼0a d6 63 3a命名的不知道這是起什麼作用的

在線等快取檔案突然沒了的原因?

快取檔案在D碟資料空間是很大的

一、yii的緩衝需要在main.php裡面配置,

/****************/
‘cache' => array (
‘class' => ‘system.caching.CFileCache'
)

配置完成以後只要在控制器裡面… .

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

二、配置多種快取

##main.php 的設定

‘cache' => array (
‘class' => ‘system.caching.CFileCache'
),
‘dbcache' => array (
‘class' => ‘system.caching.CDbCache'
)

控制器只要用對應的cacheid呼叫就好

如:

Yii::app ()->dbcache

三、頁面緩衝也就是把整個頁面靜態化

main.php配置還是一樣

控制器:可以使用COutputCache類別作為一個我們控制器類別中的一個行為過濾器。

public function filters() {
return array (
array (
‘COutputCache',
‘duration' => 600,
‘ varyByParam' => array(‘id')
)
);
}

COutputCache來快取資料時,來作為自動產生key名字的策略。以下是可以使用的清單:

varyByRoute:透過將該選項設為true,具體請求的路由部分將會作為獨立識別碼的一部分用於產生快取資料。所以,你可以使用請求controller和acion的組合來區別快取內容。

varyBySession:透過設定該選項為true,將使用唯一的session id來區分快取中的內容。每個使用者的session都是不同的,但是可以用來為快取服務。

varyByParam:如前面所說,這裡是用輸入的GET中的參數來區分快取內容。

varyByExpression:給這個選項設定PHP表達式,我們可以使用對應表達式的結果來區分快取的內容。

還有要注意的是 COutputCache預設的cacheid是cache

#四、片段快取

片段快取用來快取一個頁面的一部分。我們可以在view腳本中使用片段快取。我們透過使用CController::beginCache()和CController::endCache()方法來實作。

…some HTML content…
<?php if($this—>beginCache($key))?>
…content to be cached…
<?php $this—>endCache(); ?>
…other HTML content…

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

關於yii使用bootstrap的分頁樣式

關於PHP中ID設定自增後不連續的原因分析及解決辦法

以上是對於Yii CFileCache 取得不到值的原因分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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