我想在我正在使用的當前Web應用程序的模型級別使用緩存。CakePHP緩存用戶特定查詢數據,最佳實踐
我很喜歡緩存一般的東西,像「最新消息」或其他非用戶特定的事情,我正在尋找緩存查詢的一些方向,依賴於用戶特定的數據。
例如,用戶評論的列表。查詢將需要用戶ID,結果將只針對該用戶,那麼我應該如何緩存?
更重要的是,更新註釋時簡單地清除整個緩存看起來效率很低,最好能得到一些關於如何清除用戶特定緩存鍵的建議。
例
function getEntryByInventory($id,$company_id) {
$getEntryByInventory = Cache::read('Entry.getEntryByInventory.'.$id.'.'.$company_id);
if($getEntryByInventory !==false) {
return $getEntryByInventory;
} else {
$getEntryByInventory = $this->find('first' , array(
'conditions' => array(
'Entry.id' => $id,
'Inventory.company_id' => $company_id
)
));
Cache::write('Entry.getEntryByInventory.'.$id.'.'.$company_id , $getEntryByInventory);
return $getEntryByInventory;
}
}
// How would I clear the above cache without knowing the company id?
function beforeSave() {
Cache::delete('????');
return true;
}
我可以保存此查詢在緩存中的結果,並使其具體加上$ COMPANY_ID到緩存關鍵,所以讀取和寫入高速緩存是好的。
但在這種情況下,如果我需要從緩存中刪除此密鑰,我需要$ company_id。
我的問題是,我正在以正確的方式進行討論,如果沒有,我可以得到一些指示!
在此先感謝。