【发布时间】:2015-11-08 15:59:14
【问题描述】:
有人可以用新手的话解释一下warming up清除缓存后的含义吗?
在 Symfony2 中,有一个命令可以清除缓存:
php app/console cache:clear
但有时在安装某些包时,安装会尝试清除缓存,当失败时,它会抛出警告:
无法使用
--warmup清除缓存。
为什么要在安装包后预热缓存?您平时的解释非常宝贵。
【问题讨论】:
有人可以用新手的话解释一下warming up清除缓存后的含义吗?
在 Symfony2 中,有一个命令可以清除缓存:
php app/console cache:clear
但有时在安装某些包时,安装会尝试清除缓存,当失败时,它会抛出警告:
无法使用
--warmup清除缓存。
为什么要在安装包后预热缓存?您平时的解释非常宝贵。
【问题讨论】:
缓存预热是为您的应用程序生成新的缓存。因此,当用户请求打开您应用的某个页面时,它可以从生成的缓存中读取数据并将其返回。
缓存清理实际上是清理旧缓存。如果您进行缓存清理而不进行预热,那么当新请求到来时,应用程序将完成检索数据和生成新缓存所需的所有工作,然后返回结果。如果缓存在此之前已经预热,则直接返回,响应速度会快很多。
安装新包时..您安装一个新包以在您的应用中使用它。因此,您对源代码进行更改,例如将捆绑包注册为服务,例如从控制器调用该服务以及此类事情。但是之前生成的缓存不知道这些更改。所以缓存应该被清理并再次生成(预热)以记住这些变化。我猜这不是一个深刻的答案,而是试图给它一个简单的解释。
【讨论】:
目的是初始化所有缓存所需的 应用程序并防止第一个用户使用任何重要的“缓存 hit”,缓存是动态生成的。
来自http://symfony.com/doc/current/reference/dic_tags.html#kernel-cache-warmer
现实世界的示例:您提供了一些需要缓存的统计信息,以便您可以编写自己的服务,该服务将被调用到 kernel.cache_warmer 事件以“静态地”执行此任务。
【讨论】:
caches 中简单地了解这个缓存是什么。还有更简单的链接吗?感谢您的时间和理解。