我正在尝试使用缓存查询来改进我的Fat Free Framework Web应用程序,无论何时可能。
我想知道通过应用一些“技巧”来尝试缓存甚至包含大量变化的数据的查询是否有任何意义。
IE,你不会缓存这个:
SELECT * FROM tasks WHERE status = 'open';
但是如果我能够无限期地缓存它并且在特定事件(例如,在这种情况下关闭任务)发生时外部因素清除其缓存会怎么样?
如果这是我的查询:
$tasks = $this->db->exec(
array(
"SELECT *
FROM tasks
WHERE status = 'open'"
),
NULL,
86400
);
有什么方法可以强迫其24小时缓存版本提前到期?
答案 0 :(得分:2)
是:
解决方案#1:
清除整个缓存内容:$f3->clear('CACHE')
解决方案#2:
标记您的缓存查询:
$tasks = $this->db->exec(
array(
"SELECT *
FROM tasks
WHERE status = 'open'"
),
NULL,
[86400,'mytag'] // << tag defined here
);
然后,您只能清除与此标记匹配的缓存内容:
Cache::instance()->reset('mytag');