Fat Free Framework动态缓存过期

时间:2017-07-27 13:58:10

标签: php caching fat-free-framework

我正在尝试使用缓存查询来改进我的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小时缓存版本提前到期?

1 个答案:

答案 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');