php 什么是预热已清除的缓存?

tcomlyy6  于 6个月前  发布在  PHP
关注(0)|答案(2)|浏览(57)

有人能解释一下清除warming up缓存后它的含义吗?
在Symfony 2中,有一个允许清除该高速缓存的命令:

php app/console cache:clear

字符串
但有时在安装某些捆绑包时,安装程序会尝试清除该高速缓存,当失败时,它会抛出一个警告:
无法使用--warmup清除缓存。
为什么要在捆绑包安装后预热该高速缓存?

3zwtqj6y

3zwtqj6y1#

缓存预热是为您的应用程序生成新的缓存。因此,当用户请求打开您的应用程序的页面时,它可以从生成的缓存中读取数据并将其给予作为回报。
缓存清理实际上是清理旧的缓存。如果你做缓存清理而不预热,当一个新的请求到来时,应用程序将完成所有需要的工作来检索数据并生成新的缓存,然后返回结果。如果缓存在此之前已经预热,那么它将直接返回,所以它会更快地响应。
当安装一个新的bundle..你安装一个新的bundle,然后在你的应用程序中使用它。所以你对源代码进行更改,比如将bundle注册为服务,比如从你的控制器调用那个服务之类的。但是之前生成的该高速缓存并不知道这些变化。所以缓存应该被清理并重新生成(热身)接受思想上的变化。我猜不是一个深刻的回答,而是试图给予一个简单的解释。

ee7vknir

ee7vknir2#

其目的是初始化应用程序所需的任何缓存,并防止第一个用户在动态生成该高速缓存的情况下发生任何重大的“缓存命中”。
从http://symfony.com/doc/current/reference/dic_tags.html#kernel-cache-warmer
真实的世界示例:您给予一些需要缓存的统计信息,这样您就可以编写自己的服务,这些服务将被调用到kernel.cache_warmer事件中,以“静态”地执行此任务。

相关问题