2017-07-27 108 views
1

我正试图通过使用缓存查询来改进我的Fat Free Framework Web应用程序,无论哪里都可能。Fat Free Framework动态缓存过期

我想知道,通过应用一些小技巧,尝试缓存甚至涉及涉及数据变化的数据的查询是否有意义。

IE,tipically你不会缓存此:

SELECT * FROM tasks WHERE status = 'open'; 

但如果我能,而不是无限期的高速缓存,并有外部因素清除其高速缓存当特定事件(例如一个任务是关闭的,在这情况)发生?

如果这是我的查询:

$tasks = $this->db->exec(
    array(
     "SELECT * 
     FROM tasks 
     WHERE status = 'open'" 
    ), 
    NULL, 
    86400 
); 

是否有任何可能的办法让我可以强制其24小时之久的缓存版本更早到期?

回答

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'); 
+0

很不错的,我不知道我能查询标签这种方式。谢谢。 – Seether