Différence entre la durée de vie minimale du cache et l'expiration des pages en cache
35
Sur la page Drupal Performance, sous le fieldset Cache, vous avez deux options. L'une est la durée de vie minimale du cache et l'autre, l'expiration des pages en cache.
Je connais en quelque sorte la réponse. J'ai pensé écrire une petite réponse détaillée juste pour valider ma pensée et espérer que cela pourrait aider les autres.
J'ai fait les observations suivantes après avoir passé quelques heures. S'il y a des lacunes ou des erreurs, faites-le moi savoir. Je serai heureux de faire des éditions.
Premier observateur qu’aucune des options de CACHING n’est interdépendante. S'ils l'étaient, vous les auriez vus sous différents ensembles de champs (ou sous forme de champs dépendants). Notez cette observation et nous la reverrons plus tard.
Commençons par la première option Cache Pages pour les utilisateurs anonymes .
Lorsque vous cochez cette option, vous indiquez à Drupal
Stocker le code HTML généré dans la table de cache
Pour pouvoir afficher le même résultat à tous les utilisateurs, mes pages restent les mêmes pour tous les utilisateurs anonymes.
Et n'effacez pas les caches de pages jusqu'à ce que je dise effacer tous les caches.
De plus, même si vous n'activez pas, Cache Pages for anonymous users la page peut toujours être mise en cache par des systèmes de cache externes. Ex: Boost
Passons maintenant aux options suivantes que vous utiliserez généralement.
Expiration des pages en cache
Notez que ce paramètre n'a rien à voir avec la base de données Drupal ou les tables de cache.
Lire la description The maximum time an external cache can use an
old version of a page.Comme l'a souligné Molot, le mot clé est external.
Cette option permet donc de définir l'en-tête Cache Control publicet la valeur max-age de l'en-tête sur la valeur spécifiée (1 jour dans ce cas).
Cet en-tête indique aux externalsystèmes de mise en cache de ne pas appeler le serveur pour cette page avant le délai maximal, car ils peuvent afficher cette page à partir de leur propre cache. Après ce délai, le système de mise en cache devrait vérifier auprès du serveur Drupal si le contenu a été modifié.
S'il s'agit d'un serveur Varnish, il n'appelle pas Apache et renvoie la page à partir de son cache. Supposons donc que Varnish a mis en cache une page et que des milliers d'utilisateurs différents ont demandé à cette page. Cela signifie donc que 1 000 demandes ont été traitées sans toucher le serveur Apache, même une fois.
Durée de vie minimale du cache
Si votre site ne génère pas un trafic important ou si vous n'êtes pas sûr de la valeur de cette valeur, il est préférable de laisser cette valeur à néant.
Cette valeur ne s'applique pas uniquement aux pages. Mais tous les objets de cache.
Ce que cette valeur indique est "Son ok pour servir des objets de cache qui sont périmés"
Dans notre cas, la valeur est définie sur 5 minutes.
Si vous avez une page qui répertorie les cinq derniers blogs sur votre page d'accueil. Ce que les valeurs ci-dessus signifient, c’est que, si un nouveau blog est créé, c’est acceptable que le blog ne figure pas dans la liste pendant cinq minutes.
Lorsque cette valeur est définie, pour que le cache soit mis à jour / recréé au minimum, il faut au minimum passer beaucoup de temps et une action d'effacement du cache doit être exécutée [Une fonction d'effacement du cache doit être exécutée].
Merci pour cette réponse. Je suis un peu confus cependant: pour "Cache Pages pour les utilisateurs anonymes" , vous dites que cela signifie "n'effacez pas les caches de pages tant que je ne dis pas effacer tous les caches". Qu'est-ce que ce "je dis" représente? Qu'est-ce qui déclenchera l'effacement du cache?
Ce que j'ai trouvé intéressant, c'est que cela n'est vrai que si "Cache pages pour les utilisateurs anonymes" est activé. Dans le cas contraire, la modification de "Expiration des pages en cache" ne fait rien et l'activation de "Durée de vie minimale du cache" définit les en-têtes. Uniquement si la mise en cache pour les utilisateurs anonymes est activée et que SEULEMENT ALORS "Expiration des pages en cache" définit les en-têtes. C'est un peu déroutant ...
La durée de vie minimale du cache est souvent interprétée à tort comme signifiant "les pages seront régénérées une fois ce délai écoulé". Cela signifie en réalité que les pages ne seront pas régénérées avant qu'au moins ce temps ne soit écoulé et qu'un événement d'effacement du cache ne se soit produit.
L'expiration des pages en cache est également parfois mal interprétée. Cette valeur contrôle ce qui est envoyé comme valeur max-age dans un en-tête Cache-Control et indique ainsi aux serveurs proxy la durée pendant laquelle ils peuvent servir la page sans demander à votre installation Drupal de vous en procurer une nouvelle copie. Cela ne signifie pas que la page sera régénérée après ce laps de temps, cela signifie simplement que le serveur proxy doit vérifier avec Drupal s'il existe une nouvelle version de la page après cette période. Drupal ne régénérera une page qu'après un événement d'effacement de la mémoire cache.
Réponses:
J'ai fait les observations suivantes après avoir passé quelques heures. S'il y a des lacunes ou des erreurs, faites-le moi savoir. Je serai heureux de faire des éditions.
Premier observateur qu’aucune des options de CACHING n’est interdépendante. S'ils l'étaient, vous les auriez vus sous différents ensembles de champs (ou sous forme de champs dépendants). Notez cette observation et nous la reverrons plus tard.
Commençons par la première option Cache Pages pour les utilisateurs anonymes .
Lorsque vous cochez cette option, vous indiquez à Drupal
Hey Beast, écoute, lorsqu'un utilisateur anonyme visite mon site,
De plus, même si vous n'activez pas,
Cache Pages for anonymous users
la page peut toujours être mise en cache par des systèmes de cache externes. Ex: BoostPassons maintenant aux options suivantes que vous utiliserez généralement.
Expiration des pages en cache
The maximum time an external cache can use an old version of a page.
Comme l'a souligné Molot, le mot clé est external.public
et la valeur max-age de l'en-tête sur la valeur spécifiée (1 jour dans ce cas).Cet en-tête indique aux
external
systèmes de mise en cache de ne pas appeler le serveur pour cette page avant le délai maximal, car ils peuvent afficher cette page à partir de leur propre cache. Après ce délai, le système de mise en cache devrait vérifier auprès du serveur Drupal si le contenu a été modifié.S'il s'agit d'un serveur Varnish, il n'appelle pas Apache et renvoie la page à partir de son cache. Supposons donc que Varnish a mis en cache une page et que des milliers d'utilisateurs différents ont demandé à cette page. Cela signifie donc que 1 000 demandes ont été traitées sans toucher le serveur Apache, même une fois.
Durée de vie minimale du cache
Si votre site ne génère pas un trafic important ou si vous n'êtes pas sûr de la valeur de cette valeur, il est préférable de laisser cette valeur à néant.
la source
Cet article présente une bonne description de la terminologie de mise en cache de Drupal: http://www.phase2technology.com/blog/caching-in-drupal/
Résumé des points pertinents:
La durée de vie minimale du cache est souvent interprétée à tort comme signifiant "les pages seront régénérées une fois ce délai écoulé". Cela signifie en réalité que les pages ne seront pas régénérées avant qu'au moins ce temps ne soit écoulé et qu'un événement d'effacement du cache ne se soit produit.
L'expiration des pages en cache est également parfois mal interprétée. Cette valeur contrôle ce qui est envoyé comme valeur max-age dans un en-tête Cache-Control et indique ainsi aux serveurs proxy la durée pendant laquelle ils peuvent servir la page sans demander à votre installation Drupal de vous en procurer une nouvelle copie. Cela ne signifie pas que la page sera régénérée après ce laps de temps, cela signifie simplement que le serveur proxy doit vérifier avec Drupal s'il existe une nouvelle version de la page après cette période. Drupal ne régénérera une page qu'après un événement d'effacement de la mémoire cache.
la source