我想在我正在使用的当前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。
我的问题是,我正在以正确的方式进行讨论,如果没有,我可以得到一些指示!
在此先感谢。