2015-08-15 61 views
5

有人可以請用新手解釋一下緩存後warming up是什麼意思?什麼是預熱清除緩存?

在Symfony2中,有一個命令,允許清除緩存:

php app/console cache:clear 

但有時在安裝一些包,安裝嘗試清除緩存和失敗時,它拋出一個警告說:

無法通過--warmup清除緩存。

爲什麼要在安裝捆綁軟件時清除緩存?爲什麼要熱身?你平時的解釋非常珍貴。

回答

5

目的是初始化將由 應用需要的任何高速緩衝存儲器,並防止所述第一用戶從任何顯著「高速緩存命中 」,其中是動態生成的高速緩存中。

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

現實世界的例子:你給了某些統計數據需要進行緩存,以便您可以編寫自己的服務將被調用到kernel.cache_warmer事件來執行此任務「靜態」。

+4

對不起,你的回答是正確的,並指向正確的文件,但這些都不是新手的話。請您理解,如果您對它進行編輯,以便我們的初學者可以簡單瞭解這個緩存在我們所聽到的數十個「緩存」中的含義。更簡單的鏈接?感謝您的時間和理解。 –

7

緩存升溫是爲您的應用程序生成新緩存。因此,當用戶請求打開應用程序的頁面時,它可以從生成的緩存中讀取數據並將其返回。

緩存清理實際上是清理舊緩存。如果您執行緩存清理而不是預熱,當新的請求到來時,應用程序將執行檢索數據和生成新緩存然後返回結果所需的所有工作。如果緩存在此之前已經被預熱,那麼它將被直接返回,所以它的響應速度會更快。

當安裝一個新的捆綁包時。您安裝一個新捆綁包然後在您的應用程序中使用它。因此,您需要對源代碼進行更改,例如將捆綁軟件註冊爲服務,例如從您的控制器調用該服務以及此類事情。但以前生成的緩存不知道這些更改。因此緩存應該被清理並重新生成(預熱)以便考慮到這些變化。我想這不是一個深刻的答案,但試圖給它一個簡單的解釋。

+0

這是我在OP時期所期待的最令人激動的事情。謝謝\ –

+0

這更好解釋:) – felipsmartins