Fat Free Framework 动态缓存过期

Fat Free Framework dynamic cache expiration

我正在尝试通过尽可能使用缓存查询来改进我的 Fat Free Framework Web 应用程序。

我想知道通过应用一点点 'trick'.

来尝试缓存涉及变化相当频繁的数据的查询是否有意义

IE,通常你不会缓存这个:

SELECT * FROM tasks WHERE status = 'open';

但是,如果我可以改为无限期地缓存它,并在特定事件(例如,在这种情况下,任务关闭)发生时让外部因素清除它的缓存怎么办?

如果这是我的查询:

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

有什么方法可以强制其 24 小时长的缓存版本提前过期吗?

是:

解决方案 #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');