【问题标题】:Fat Free Framework dynamic cache expirationFat Free Framework 动态缓存过期
【发布时间】:2017-07-27 22:34:38
【问题描述】:

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

【问题讨论】:

    标签: php caching fat-free-framework


    【解决方案1】:

    是的:

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

    【讨论】:

    • 非常好,我不知道我可以这样标记查询。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多