Unterschied zwischen der minimalen Cache-Lebensdauer und dem Ablauf der zwischengespeicherten Seiten

35

Auf der Drupal Performance Page haben Sie unter dem Feldsatz Cache zwei Möglichkeiten. Zum einen die minimale Cache-Lebensdauer und zum anderen das Ablaufen der zwischengespeicherten Seiten.

Bildbeschreibung hier eingeben

Was ist der Unterschied zwischen diesen beiden.

Gokul NK
quelle
Schauen Sie sich "externes" Wort genauer an;)
Mołot
1
Ich kenne die Antwort. Ich dachte daran, eine kleine detaillierte Antwort zu schreiben, um mein Denken zu bestätigen und zu hoffen, dass es anderen helfen könnte.
Gokul NK
Eine ausführliche Antwort finden Sie unter drupal.stackexchange.com/questions/83315/…
Gokul NK,

Antworten:

39

Ich habe nach ein paar Stunden folgende Beobachtungen gemacht. Wenn es irgendwelche Lücken oder Fehler gibt, lass es mich wissen. Gerne mache ich auch Editionen.

Erster Beobachter, dass keine der Optionen unter CACHING voneinander abhängig ist. Wenn sie vorhanden wären, hätten Sie sie unter verschiedenen Feldsätzen (oder als abhängige Felder) gesehen. Notieren Sie sich diese Bemerkung und wir werden sie später noch einmal wiederholen.

Bildbeschreibung hier eingeben

Beginnen wir mit der ersten Option Cacheseiten für anonyme Benutzer . Bildbeschreibung hier eingeben

Wenn Sie diese Option aktivieren, sagen Sie im Grunde genommen Drupal

Hey Beast, hör zu, wenn ein anonymer Benutzer meine Seite besucht,

  1. Speichern Sie den generierten HTML-Code in der Cache-Tabelle
  2. Damit ich allen Benutzern das gleiche Ergebnis anzeigen kann, bleiben meine Seiten für alle anonymen Benutzer gleich.
  3. Löschen Sie die Seiten-Caches erst, wenn ich sage, dass alle Caches gelöscht werden.

Auch wenn Sie die Option nicht aktivieren, kann die Cache Pages for anonymous users Seite weiterhin von externen Cachesystemen zwischengespeichert werden. ZB: Boost

Gehen wir nun zu den nächsten Optionen über, die Sie normalerweise verwenden würden.

Ablauf der zwischengespeicherten Seiten

Bildbeschreibung hier eingeben

  1. Beachten Sie, dass diese Einstellung nichts mit der Drupal-Datenbank oder den Cache-Tabellen zu tun hat.
  2. Lesen Sie die Beschreibung The maximum time an external cache can use an old version of a page.Wie Molot betonte, ist das Schlüsselwort extern.
  3. Im Grunde genommen setzt diese Option die Header-Cache-Steuerung auf publicund den Höchstalterwert im Header auf den angegebenen Wert (in diesem Fall 1 Tag).
  4. Dieser Header weist die externalCaching-Systeme an, bis zum Höchstalter keinen Aufruf an den Server für diese Seite zu richten, da sie diese Seite aus ihrem eigenen Cache anzeigen können. Nach Ablauf des Höchstalters sollte das Caching-System erneut auf dem Drupal-Server nachsehen, ob sich der Inhalt geändert hat.

  5. Wenn es sich um einen Varnish-Server handelt, ruft er Apache nicht auf und gibt die Seite aus dem Cache zurück. Nehmen wir also an, Varnish hat eine Seite zwischengespeichert und tausende verschiedene Benutzer haben eine Anfrage an diese Seite gerichtet. Das bedeutet, dass 1000 Anfragen verarbeitet wurden, ohne den Apache Server auch nur einmal zu treffen.

Minimale Cache-Lebensdauer Bildbeschreibung hier eingeben

Wenn Ihre Website keinen großen Datenverkehr aufweist oder Sie sich nicht sicher sind, wie hoch dieser Wert ist, sollten Sie diesen Wert als "Kein" belassen.

  1. Dieser Wert gilt nicht nur für die Seiten. Aber alle Cache-Objekte.
  2. Was dieser Wert sagt, ist "Es ist in Ordnung, veraltete Cache-Objekte zu bedienen".
  3. In unserem Fall ist der Wert auf 5 Minuten eingestellt.
  4. Wenn Sie eine Seite haben, auf der die fünf neuesten Blogs auf Ihrer Homepage aufgelistet sind. Was die obigen Werte bedeuten, ist, dass, wenn ein neues Blog erstellt wird, es in Ordnung ist, dass das Blog für die fünf Minuten nicht in der Auflistung erscheint.
  5. Wenn dieser Wert festgelegt ist, muss mindestens so viel Zeit vergangen sein, damit der Cache aktualisiert / neu erstellt werden kann, und es muss eine Cache-Löschaktion ausgeführt werden [Eine Cache-Löschfunktion sollte ausgeführt werden].
Gokul NK
quelle
1
Danke für diese Antwort. Ich bin allerdings etwas verwirrt: Bei "Seiten für anonyme Benutzer zwischenspeichern" heißt das "Löschen der Seitencaches erst, wenn ich sage, dass alle Caches gelöscht werden". Was bedeutet dieses "Ich sage" ? Wodurch wird der Cache geleert?
S427
1
@ s427 Bitte überprüfen Sie drupal.stackexchange.com/questions/102976/…, um zu erfahren, wie der Cache geleert wird.
Gokul NK
1
Was ich interessant fand, ist, dass dies nur dann zutrifft, wenn "Seiten für anonyme Benutzer zwischenspeichern" aktiviert ist. Wenn dies nicht der Fall ist, werden durch Ändern von "Ablauf der zwischengespeicherten Seiten" keine Aktionen ausgeführt, und durch Aktivieren von "Mindestlebensdauer des Caches" werden Header festgelegt. Nur wenn das Cachen für anonyme Benutzer aktiviert ist und NUR DANN "Ablauf der zwischengespeicherten Seiten" Header setzt. Das ist ein bisschen verwirrend ...
Łukasz Zaroda
19

Dieser Artikel enthält einen guten Überblick über die Caching-Terminologie von Drupal: http://www.phase2technology.com/blog/caching-in-drupal/

Zusammenfassung der relevanten Punkte:

Die minimale Cache-Lebensdauer wird häufig falsch interpretiert, was bedeutet, dass die Seiten nach Ablauf dieser Zeit neu generiert werden. Was es tatsächlich bedeutet, ist, dass Seiten nicht neu generiert werden, bis mindestens so viel Zeit vergangen ist und ein Cache-Löschereignis aufgetreten ist.

Das Ablaufen von zwischengespeicherten Seiten wird manchmal auch falsch interpretiert. Dieser Wert steuert, was als Maximalwert in einem Cache-Control-Header gesendet wird, und teilt den Proxyservern damit mit, wie lange sie die Seite bedienen dürfen, ohne von Ihrer Drupal-Installation eine neue Kopie anzufordern. Dies bedeutet nicht, dass die Seite nach dieser Zeit neu generiert wird, sondern nur, dass der Proxy-Server mit Drupal erneut prüfen muss, ob nach dieser Zeit eine neue Version der Seite vorhanden ist. Drupal erstellt eine Seite erst neu, nachdem ein Ereignis zum Löschen des Caches eingetreten ist.

jazzdrive3
quelle