Fermer

mai 23, 2023

Cycle de vie du cache dans Drupal 9

Cycle de vie du cache dans Drupal 9


Le cycle de vie du cache est important à comprendre car il joue un rôle important dans l’optimisation des performances et de l’évolutivité des applications Web. Dans ce blog, je plongerai profondément dans le cycle de vie du cache dans Drupal 9, en explorant ses étapes clés et en soulignant les meilleures pratiques pour maximiser les avantages de la mise en cache. Les différentes étapes sont les suivantes : –

  1. Stockage du cache :
    À ce stade, Drupal stocke le contenu ou les données générés dans le backend de stockage de cache, tel que la base de données ou un système de mise en cache comme Redis ou Memcached (c’est-à-dire la technique de cache explicite). Le stockage en cache est généralement utilisé pour stocker divers types de données, notamment le rendu HTML, la configuration, les résultats des requêtes de base de données, etc. De plus, Drupal définit les bacs de cache comme des conteneurs de stockage logiques pour les données mises en cache. Chaque bac de cache peut avoir ses propres paramètres de configuration, ce qui nous permet d’affiner le comportement de mise en cache pour différents composants.
    Exemple: Si notre site a une section de blog fréquemment mise à jour. En configurant un bac de cache séparé pour le contenu du blog, nous pouvons contrôler le comportement de mise en cache spécifiquement pour les pages de blog. Nous pouvons définir un délai d’expiration du cache inférieur pour la corbeille du cache du blog afin de garantir que les nouveaux articles du blog s’affichent rapidement.
  2. Récupération du cache : Lorsqu’une page ou un composant est demandé, Drupal vérifie si une version en cache valide est disponible. Si une entrée de cache valide est trouvée, Drupal récupère les données mises en cache à partir du stockage de cache au lieu de les régénérer. Cela améliore considérablement le temps de réponse et réduit la charge sur le serveur.
  3. Métadonnées du cache: Chaque entrée de cache dans Drupal est associée à des métadonnées de cache, qui incluent les balises de cache, les contextes de cache et l’âge maximal du cache. Les balises de cache identifient les entités ou les éléments qui affectent le contenu mis en cache, les contextes de cache définissent les variations du contenu mis en cache en fonction des informations contextuelles, et cache max-age spécifie la durée pendant laquelle l’entrée de cache est considérée comme valide.

    Comprenons cela en détail:

    Balises de cache : Les balises de cache sont un type de chaînes. Ils permettent à Drupal d’invalider les entrées de cache associées lorsque des modifications se produisent efficacement. Par exemple, lorsqu’un nœud est mis à jour, Drupal invalide les entrées de cache associées à la balise de cache de ce nœud, garantissant ainsi que le contenu mis à jour est livré.
    Exemple: Supposons que sur notre site, nous ayons un catalogue de produits. Chaque nœud de produit est associé à une balise de cache spécifique. Lorsque le prix ou la description d’un produit est modifié, Drupal invalide automatiquement les entrées de cache liées à la balise de cache de ce produit. Cela garantit que les utilisateurs voient les informations mises à jour sur le produit lorsqu’ils visitent la page de produit correspondante.

    Contextes de cache : Les contextes de cache permettent à Drupal de faire varier les entrées de cache en fonction de différentes conditions, telles que les rôles d’utilisateur, les langues ou les types d’appareils. En tirant parti des contextes de cache, Drupal peut servir un contenu personnalisé tout en bénéficiant de la mise en cache. Par exemple, un bloc contenant des recommandations spécifiques à l’utilisateur peut avoir des métadonnées de mise en cache avec un contexte de cache pour le rôle de l’utilisateur. Cela garantit que chaque utilisateur voit ses recommandations personnalisées tout en bénéficiant de la mise en cache pour les autres éléments statiques de la page. Exemple: Supposons que notre site ait un support multilingue. Chaque page peut être affichée dans différentes langues et la traduction du contenu est gérée par le système de traduction de Drupal. En utilisant des contextes de cache pour la langue, Drupal peut mettre en cache différentes versions de la même page en fonction de la préférence linguistique de l’utilisateur. Lorsqu’un utilisateur visite une page, Drupal vérifie le contexte du cache pour la langue et sert la version en cache de la page spécifique à cette langue, si disponible.

  4. Invalidation du cache : Lorsque les données changent dans Drupal, qu’il s’agisse d’un nœud en cours de mise à jour, d’un changement de configuration ou de tout autre événement pertinent, Drupal déclenche l’invalidation du cache. L’invalidation du cache implique l’identification et l’invalidation de toutes les entrées du cache associées aux données modifiées. Cela garantit que les anciennes données ne sont pas présentées aux utilisateurs.
    Exemple: Prenons un exemple où, à l’intérieur de notre site, nous avons un type de contenu de blog et nous avons implémenté la mise en cache des articles de blog avec des balises de cache. [node_of_post_type:id ]. Supposons que l’un des articles de blog ayant l’identifiant 5 soit mis à jour. Drupal détecte ce changement car il a défini la balise de cache du type de nœud post sur 5 et déclenche l’invalidation du cache. Il identifie toutes les entrées de cache associées au ‘noeud : 5‘ balise de cache et les marque comme non valides.
  5. Reconstruction du cache : La reconstruction du cache se produit lorsqu’une entrée de cache est invalidée et qu’une nouvelle entrée de cache doit être générée. Lorsqu’un défaut de cache ou une expiration d’entrée de cache se produit, Drupal reconstruit le cache en exécutant les requêtes et les calculs nécessaires pour générer de nouvelles entrées de cache. Ce processus peut être gourmand en ressources, mais il garantit que les demandes ultérieures peuvent bénéficier des entrées de cache nouvellement générées.
    Exemple: Dans l’exemple ci-dessus, la prochaine fois qu’un utilisateur demandera la page affichant la liste des articles de blog, Drupal reconnaîtra que les entrées de cache de l’article de blog concerné (nœud 5) sont invalidés. Il reconstruit le cache en régénérant la sortie HTML, y compris le contenu mis à jour pour le nœud 5. Le contenu régénéré est ensuite stocké dans le stockage du cache, remplaçant les entrées de cache non valides.

Conclusion: Le cycle de vie du cache dans Drupal 9 joue un rôle majeur dans l’amélioration des performances du site Web et de l’expérience utilisateur. En comprenant chaque étape du cycle de vie du cache et en suivant les meilleures pratiques, nous pouvons exploiter efficacement les mécanismes de mise en cache pour fournir un contenu Web rapide et dynamique, ce qui permet d’obtenir une meilleure évolutivité, des temps de réponse améliorés et des performances globales améliorées.

Vous recherchez une analyse approfondie et des avis d’experts? Découvrez nos autres ressources maintenant.

TROUVÉ CELA UTILE ? PARTAGEZ-LE




Source link