2017-07-27 68 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