Differenza tra la durata minima della cache e la scadenza delle pagine memorizzate nella cache


35

Nella pagina delle prestazioni di Drupal, sotto la cache del set di campi sono disponibili due opzioni. Uno è Durata cache minima e l'altro è Scadenza delle pagine memorizzate nella cache.

inserisci qui la descrizione dell'immagine

Qual è la differenza tra questi due.


Guarda più da vicino la parola "esterna";)
Mołot

1
Conosco una risposta. Ho pensato di scrivere una risposta un po 'dettagliata solo per convalidare il mio pensiero e sperando che potesse aiutare gli altri.
Gokul NK,

Per una risposta dettagliata controlla drupal.stackexchange.com/questions/83315/…
Gokul NK

Risposte:


39

Ho fatto le seguenti osservazioni dopo aver trascorso alcune ore. Se ci sono lacune o errori, fammi sapere. Sarò felice di fare edizioni.

Primo osservatore sul fatto che nessuna delle Opzioni previste dal CACHING è interdipendente. Se lo fossero, li avresti visti in diversi set di campi (o come campi dipendenti). Prendi nota di questa osservazione e la rivedremo più avanti.

inserisci qui la descrizione dell'immagine

Cominciamo con la prima opzione Pagine cache per utenti anonimi . inserisci qui la descrizione dell'immagine

Quando selezioni questa opzione, in pratica stai dicendo a Drupal

Hey Beast ascolta, quando un utente anonimo visita il mio sito,

  1. Archivia l'HTML generato nella tabella della cache
  2. In modo che io possa visualizzare lo stesso risultato a tutti gli utenti in quanto le mie pagine rimangono invariate per tutti gli utenti anonimi.
  3. E non cancellare la cache delle pagine fino a quando dico di cancellare tutte le cache.

Anche quando non si abilita la Cache Pages for anonymous users pagina può comunque essere memorizzata nella cache da sistemi di cache esterni. Ad esempio: Boost

Ora passiamo alle opzioni successive che potresti utilizzare in generale.

Scadenza delle pagine memorizzate nella cache

inserisci qui la descrizione dell'immagine

  1. Nota che questa impostazione non ha nulla a che fare con il database Drupal o le tabelle della cache.
  2. Leggi la descrizione The maximum time an external cache can use an old version of a page.Come ha sottolineato Molot, la parola chiave è esterna.
  3. Quindi, ciò che questa opzione sostanzialmente fa è impostare l'intestazione Controllo cache su publice il valore di massima durata nell'intestazione sul valore specificato (1 giorno in questo caso).
  4. Questa intestazione dice ai externalsistemi di memorizzazione nella cache di non effettuare chiamate al server per questa pagina fino al limite massimo, in quanto possono mostrare questa pagina dalla propria cache. Dopo l'età massima, il sistema di memorizzazione nella cache dovrebbe ricontrollare con il server Drupal per vedere se il contenuto è cambiato.

  5. Se è un server Varnish, non effettua una chiamata ad Apache e restituisce la pagina dalla sua cache. Supponiamo quindi che Varnish abbia memorizzato nella cache una pagina e che migliaia di utenti diversi abbiano fatto richiesta a quella pagina. Quindi significa che 1000 richieste sono state elaborate senza colpire il Server Apache nemmeno una volta.

Durata minima della cache inserisci qui la descrizione dell'immagine

Se il tuo sito non ha un traffico enorme o se non sei sicuro di quale sia questo valore, è meglio lasciare questo valore come nessuno.

  1. Questo valore si applica non solo per le pagine. Ma tutti gli oggetti cache.
  2. Ciò che questo valore dice è "Va bene per servire oggetti cache che sono vecchi"
  3. Nel nostro caso il valore è impostato su 5 minuti.
  4. Se hai una pagina che elenca gli ultimi cinque blog sulla tua home page. Ciò che significa i valori di cui sopra è che, se viene creato un nuovo blog, va bene che il blog non venga visualizzato nell'elenco per i cinque minuti.
  5. Quando questo valore è impostato, affinché la cache venga aggiornata / ricreata al minimo deve essere trascorso troppo tempo e deve essere eseguita un'azione di svuotamento della cache [Deve essere eseguita una funzione di svuotamento della cache].

1
Grazie per questa risposta Sono un po 'confuso: per "Pagine cache per utenti anonimi" , dici che significa "non svuotare le cache delle pagine fino a quando non dico cancella tutte le cache". Cosa rappresenta questo "dico" ? Cosa attiverà la cancellazione della cache?
s427,

1
@ s427, consultare drupal.stackexchange.com/questions/102976/… per i dettagli su ciò che attiverà la cancellazione della cache.
Gokul NK,

1
Quello che ho trovato interessante è che questo è vero solo se è abilitato "Pagine cache per utenti anonimi". In caso contrario, la modifica di "Scadenza delle pagine memorizzate nella cache" non fa nulla e l'abilitazione di "Durata minima della cache" imposta le intestazioni. Solo se la memorizzazione nella cache per utenti anonimi è abilitata e SOLO POI "Scadenza delle pagine memorizzate nella cache" imposta le intestazioni. Questo è un po 'confuso ...
Łukasz Zaroda,

19

Questo articolo presenta una buona panoramica della terminologia di memorizzazione nella cache di Drupal: http://www.phase2technology.com/blog/caching-in-drupal/

Riepilogo dei punti pertinenti:

La durata minima della cache viene spesso erroneamente interpretata nel senso che "le pagine verranno rigenerate dopo che è trascorso molto tempo". In realtà ciò significa che le pagine non verranno rigenerate fino a quando non è trascorso almeno questo tempo e non si è verificato un evento di svuotamento della cache.

Anche la scadenza delle pagine memorizzate nella cache viene talvolta interpretata erroneamente. Questo valore controlla ciò che viene inviato come valore max-age in un'intestazione Cache-Control e avvisa quindi i server proxy per quanto tempo possono servire la pagina senza chiedere alla tua installazione di Drupal una nuova copia. Ciò non significa che la pagina verrà rigenerata dopo tanto tempo, significa solo che il server proxy deve ricontrollare con Drupal per vedere se esiste una nuova versione della pagina dopo questo tempo. Drupal rigenererà una pagina solo dopo che si è verificato un evento di svuotamento della cache.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.