2015-08-15 2 views
5

Kann jemand bitte erklären in Newbie Worte, was ist die Bedeutung von warming up ein Cache nach dem Löschen?Was erwärmt einen geclearten Cache?

In Symfony2 gibt es einen Befehl, der den Cache ermöglicht Clearing:

php app/console cache:clear 

Aber manchmal während einiger Pakete zu installieren, versucht die Installation den Cache zu löschen und wenn fehlgeschlagen ist, wirft es eine Warnung sagen:

Cache kann nicht mit --warmup gelöscht werden.

Warum den Cache während der Paketinstallation löschen? Und warum zum Aufwärmen? Ihre üblichen Erklärungen sind sehr wertvoll.

Antwort

5

Der Zweck ist jede Cache zu initialisieren, die durch die Anwendung benötigt werden und den ersten Benutzer von einem signifikanten „cache Hit“ verhindern, wo der Cache dynamisch erzeugt wird.

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

echtem Beispiel: Sie einigen Statistiken geben, die im Cache gespeichert werden müssen, so können Sie Ihren eigenen Service schreiben, die auf kernel.cache_warmer Ereignis aufgerufen werden, um diese Aufgabe auszuführen „statisch“.

+4

Entschuldigung, Ihre Antwort ist korrekt und zeigt auf die richtige Dokumentation, aber das sind keine Anfängerwörter. Bitte, es wird geschätzt, wenn Sie es bearbeiten, so dass wir Anfänger einfach verstehen können, was ist dieser Cache unter diesen Dutzenden von 'caches', von denen wir hören. Noch einfachere Links? Danke für deine Zeit und dein Verständnis. –

7

Cache-Erwärmung soll neuen Cache für Ihre Anwendung generieren. Wenn also ein Benutzer eine Seite Ihrer App öffnen möchte, kann er Daten aus dem generierten Cache lesen und sie zurückgeben.

Die Cache-Reinigung löscht buchstäblich den alten Cache. Wenn Sie die Cache-Bereinigung durchführen und sich nicht aufwärmen, wenn eine neue Anfrage eintrifft, erledigt die Anwendung alle Aufgaben, die sie zum Abrufen von Daten und zum Generieren eines neuen Cache benötigt, und gibt dann das Ergebnis zurück. Wenn der Cache zuvor aufgewärmt wurde, wird er direkt zurückgegeben, so dass die Antwort viel schneller ist.

Bei der Installation eines neuen Bundles .. Sie installieren ein neues Bundle, um es dann in Ihrer App zu verwenden. Sie ändern also den Quellcode, indem Sie das Bundle als Dienst registrieren und diesen Dienst beispielsweise von Ihren Controllern aus aufrufen. Der Cache, der zuvor generiert wurde, kennt diese Änderungen jedoch nicht. Daher sollte der Cache gereinigt und erneut generiert werden (aufgewärmt), um die Änderungen zu berücksichtigen. Keine tiefe Antwort, denke ich, aber ich versuche es einfach zu erklären.

+0

Das ist ehrlich gesagt, was ich zur OP Zeit suchte. Danke \ –

+0

Das ist besser erklärt :) – felipsmartins

Verwandte Themen