什么使预热缓存升温​​?

Adi*_*oui 5 php caching symfony

有人可以用新手的话说明warming up清除后缓存的含义是什么?

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

php app/console cache:clear
Run Code Online (Sandbox Code Playgroud)

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

无法清除缓存--warmup.

为什么要在捆绑安装期间清除缓存?为什么要热身?您通常的解释非常珍贵.

小智 8

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

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

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


Don*_*sto 5

目的是初始化应用程序所需的任何缓存,并防止第一个用户动态生成缓存的任何重要"缓存命中".

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

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

  • 对不起,您的答案是正确的,并指向正确的文档,但这些不是新手的话.如果你编辑它,我们将不胜感激,这样我们初学者可以简单地理解我们听到的数十个缓存中的缓存是什么.更简单的链接?感谢您的时间和理解. (4认同)