基本上我會緩存所有用戶輸入數據爲此(例如,我會緩存用戶評論)。我正在使用Simple PHP Cache。 現在我會做的是運行像(僞代碼):如何有效地重新加載緩存的數據
$cache = new Cache(page-specific-cache);
if(hasNewComments()) {
$cache->erase('comments');
$cache->store('comments', array(/*array of comments...*/), 60);
}
//...show comments and stuff
現在我的問題是:我應該運行上面的代碼塊,或者我應該嘗試做類似下面的代碼,其中我還檢查緩存是否已過期,是否已重新生成?在這種情況下,這似乎有點過分了?
$cache = new Cache(page-specific-cache);
if((hasNewComments()) || ($cache->isCached('comments') && $cache->isExpired('comments'))) {
$cache->erase('comments');
$cache->store('comments', array(/*array of comments...*/), 60);
}
//...show comments and stuff
注意
的isExpired()
方法不來帶班,我創造了它自己,這是它的樣子:
public function isExpired($key) {
if (false != $this->_loadCache()) {
$cachedData = $this->_loadCache();
return $this->_checkExpired($cachedData[$key]['time'], $cachedData[$key]['expire']);
}
}
在你顯示的代碼中,你實際上從未從緩存中讀取*如果你從未讀取它,那麼緩存沒有意義。通常情況下,如果它從緩存中讀取(當緩存過期時應該自行停止存在),那麼您將刷新數據。 – deceze
@deceze對不起,我沒有包括那部分。基本上高速緩存檢查完成後,讀取('retrieve')完成後追加到模板變量。 – Darren