什么在预热一个被清空的缓存


What is warming up a cleared cache?

谁能用新手的话解释一下warming up a缓存清理后是什么意思?

在Symfony2中,有一个命令允许清除缓存:

php app/console cache:clear

但有时在安装一些包时,安装试图清除缓存,当失败时,它抛出一个警告:

无法使用--warmup清除缓存

为什么要在bundle安装后预热缓存?你的解释非常宝贵。

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

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

当安装一个新的bundle..你安装一个新的bundle,然后在你的应用中使用它,你对源代码做一些改变,比如把bundle注册为一个服务,从你的控制器调用那个服务等等。但是之前生成的缓存并不知道这些变化。因此,应该清理缓存并重新生成(预热),以便牢记更改。我想这不是一个深刻的答案,而是试图给它一个简单的解释。

目的是初始化对象所需的任何缓存应用程序,并防止第一个用户使用任何重要的"缓存"点击"动态生成缓存"。

从http://symfony.com/doc/current/reference/dic_tags.html kernel-cache-warmer

真实世界的例子:你给出一些需要缓存的统计数据,这样你就可以编写自己的服务,该服务将被调用到kernel.cache_warmer事件来"静态"执行此任务。