【问题标题】:What is warming up a cleared cache?什么是预热已清除的缓存?
【发布时间】:2015-11-08 15:59:14
【问题描述】:

有人可以用新手的话解释一下warming up清除缓存后的含义吗?

在 Symfony2 中,有一个命令可以清除缓存:

php app/console cache:clear

但有时在安装某些包时,安装会尝试清除缓存,当失败时,它会抛出警告:

无法使用--warmup 清除缓存。

为什么要在安装包后预热缓存?您平时的解释非常宝贵。

【问题讨论】:

    标签: php symfony caching


    【解决方案1】:

    缓存预热是为您的应用程序生成新的缓存。因此,当用户请求打开您应用的某个页面时,它可以从生成的缓存中读取数据并将其返回。

    缓存清理实际上是清理旧缓存。如果您进行缓存清理而不进行预热,那么当新请求到来时,应用程序将完成检索数据和生成新缓存所需的所有工作,然后返回结果。如果缓存在此之前已经预热,则直接返回,响应速度会快很多。

    安装新包时..您安装一个新包以在您的应用中使用它。因此,您对源代码进行更改,例如将捆绑包注册为服务,例如从控制器调用该服务以及此类事情。但是之前生成的缓存不知道这些更改。所以缓存应该被清理并再次生成(预热)以记住这些变化。我猜这不是一个深刻的答案,而是试图给它一个简单的解释。

    【讨论】:

    • 老实说,这就是我在 OP 时间所寻找的。谢谢\
    • 这更好解释:)
    • 这意味着我不需要使用 cache:clear?,如果热身我不会让用户失去那个时间。如果是这样,我应该总是使用热身吗?至少在生产中
    【解决方案2】:

    目的是初始化所有缓存所需的 应用程序并防止第一个用户使用任何重要的“缓存 hit”,缓存是动态生成的。

    来自http://symfony.com/doc/current/reference/dic_tags.html#kernel-cache-warmer

    现实世界的示例:您提供了一些需要缓存的统计信息,以便您可以编写自己的服务,该服务将被调用到 kernel.cache_warmer 事件以“静态地”执行此任务。

    【讨论】:

    • 抱歉,您的答案是正确的并且指向正确的文档,但这些不是新手的话。请,如果您编辑它,我们将不胜感激,以便我们初学者可以在我们听到的这数十个caches 中简单地了解这个缓存是什么。还有更简单的链接吗?感谢您的时间和理解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2014-05-10
    • 1970-01-01
    • 2021-02-05
    • 2012-02-25
    相关资源
    最近更新 更多