This is the Trace Id: e381169e5ec8c0a4c80e56544f351966
Passer directement au contenu principal
Azure
arrière-plan en dégradé

Qu’est-ce que la mise en cache ?

Découvrez comment la mise en cache améliore les performances et l’efficacité du système.

Signification de la mise en cache

La mise en cache conserve en mémoire des copies réutilisables des données fréquemment consultées afin que les applications évitent les appels répétés à la base de données et renvoient les résultats plus rapidement.

Points clés

  • La mise en cache stocke les données fréquemment demandées en mémoire rapide afin que les applications puissent répondre plus rapidement sans atteindre la base de données primaire à chaque fois.
  • Une requête classique vérifie d’abord le cache, puis extrait du magasin source en cas d’absence et met à jour le cache à l’aide de modèles de lecture/écriture courants.
  • Bien fait, la mise en cache réduit la latence et la charge du serveur principal, aide à gérer les pics de trafic et prend en charge des scénarios courants tels que les sites web, les API et l’état de session.
  • La mise en cache s’affiche sur plusieurs couches, et elle fonctionne mieux lorsque vous choisissez des données stables à lecture intensive et que vous conservez une source durable de vérité avec un plan de secours.

Présentation de la mise en cache

Qu’est-ce qu’un cache ?

La mise en cache est la pratique consistant à stocker des données clé-valeur dans une mémoire temporaire (telle qu'une base de données en langage de requête structuré non relationnel (NoSQL)) afin que les applications puissent les récupérer plus rapidement qu'elles ne le pourraient à partir d'un stockage conventionnel. Dans les architectures de stockage cloud, où les requêtes traversent souvent les réseaux et touchent des services partagés, la mise en cache peut contribuer à maintenir des temps de réponse faibles et à réduire le travail répété.

Comment la mise en cache fonctionne-t-elle ?

La plupart des systèmes conservent une « source de vérité » durable (une base de données) pour les ensembles de données complets, puis conservent un cache pour les sous-ensembles transitoires qui sont souvent lus. Lorsqu’une requête arrive, l’application vérifie d’abord le cache ; si les données sont présentes, elles sont retournées rapidement sans interroger à nouveau le back end. Les développeurs mettent également en cache les données traitées et les réutilisent pour répondre aux requêtes plus rapidement que les requêtes standard vers des bases de données relationnelles, des bases de données SQL ou des bases de données PostgreSQL open source.

Principes clés de la mise en cache

1. Mettre en cache ce que vous avez lu beaucoup

Les bons candidats incluent les données lues à plusieurs reprises et les données qui changent rarement (par exemple, les informations de produit et de tarification ou les ressources statiques partagées qui sont coûteuses à construire).

2. Résultats du cache du travail répété

Si une opération transforme des données ou effectue un calcul complexe, la mise en cache du résultat peut éviter de les recalculer pour les requêtes suivantes.

3. Utiliser des couches de cache si nécessaire

Les développeurs utilisent des caches multiniveaux (“couches de” cache) pour stocker différents types de données dans des caches distincts en fonction de la requête. L’ajout d’une ou de plusieurs couches de cache peut améliorer le débit et la latence dans une couche de données.

4. Maintenir l’état de session proche pour les applications réactives

Les magasins en mémoire sont souvent utilisés pour contenir de grands volumes de données de session, comme des entrées utilisateur, des entrées de panier d’achat ou des préférences de personnalisation pendant de courtes périodes. Pour les applications avec état, les équipes stockent également l’état de session dans le cache afin que l’application puisse être sans état.

Impact sur les performances du système

La mise en cache peut améliorer les performances de plusieurs manières concrètes :

  • La lecture des données à partir d’un cache en mémoire est plus rapide que l’accès aux données à partir d’un magasin piloté par disque.
  • Moins de requêtes peuvent réduire la charge et limiter la nécessité de mettre à l’échelle l’infrastructure de base de données, ce qui peut également réduire les coûts.
  • Les couches de cache peuvent améliorer le débit et la latence, et les caches en mémoire peuvent aider à atténuer la latence pendant les pics d’utilisation.
  • Une instance de cache peut traiter des millions de requêtes par seconde, offrant un débit que de nombreuses bases de données ne peuvent égaler.

Comment la mise en cache fonctionne-t-elle ?

Flux de base : Cache + magasin de données source

Dans de nombreuses conceptions cloud, un cache se trouve à côté d'un magasin de données principal (comme une base de données). Le magasin principal contient l'ensemble de données complet et durable sur le serveur cloud, tandis que le cache conserve un sous-ensemble plus petit et temporaire, plus rapide à lire.

Une configuration courante est une couche de cache autonome, ou un cache qui se trouve dans le niveau—d’application ou de base de données choisi en fonction de l’endroit où vous avez besoin de lectures rapides.

Couches de cache : plusieurs chemins “rapides”

Certains systèmes utilisent la mise en cache multiniveaux (“couches” de cache) de sorte que différents types de données résident dans différents caches en fonction de la requête. L’ajout d’une ou de plusieurs couches de cache peut améliorer le débit et la latence de la couche de données et réduire le coût global en réduisant la charge back-end.

Ce qui est mis en cache (et pourquoi)

Les équipes mettent généralement en cache les données qui se trouvent dans quelques compartiments :

  • Lisez fréquemment les données (surtout si elles changent rarement), telles que les informations sur les produits ou les prix, et les ressources statiques partagées dont la construction est coûteuse.
  • Les calculs répétitifs, où une opération transforme des données ou effectue un calcul complexe, la mise en cache du résultat évite de refaire le même travail pour les requêtes ultérieures.
  • État de session pour les applications avec état, où le stockage de l’état de session dans le cache peut aider à conserver le niveau d’application sans état.

Modèles de mise en cache courants (flux de travail en lecture/écriture)

Il existe plusieurs façons standard pour les applications de lire et d’écrire dans un cache. Voici les modèles les plus courants et ce qu’ils signifient dans la pratique.

  • Cache-aside : Charger les données à la requête à partir d'un magasin de données.
  • Read-through : lit à partir du cache et le cache est récupéré du magasin de données si nécessaire.
  • Write-through : Écrivez dans le cache, et celui-ci se resynchronise de façon synchrone avec le magasin de données.
  • Write-back (write-behind) : écrivez dans le cache et réécrivez dans le magasin de données par lots.
  • Write-around : écriture dans le magasin de données et lecture à partir du cache ; le cache est mis à jour à la requête.

Pourquoi cela réduit la charge et accélère les choses

L’utilisation de couches de cache peut améliorer le débit et la latence en traitant les requêtes courantes du cache au lieu d’interroger à plusieurs reprises le magasin principal. Cela peut réduire la nécessité de mettre à l’échelle l’infrastructure de base de données, car moins de requêtes atteignent la base de données en premier lieu.

Pour les applications présentant des pics d’utilisation, les caches en mémoire peuvent contribuer à atténuer la latence en conservant les données fréquemment demandées à proximité de l’endroit où elles sont utilisées.

Guide rapide : Sélection d’un modèle

Utilisez ces éléments comme point de départ lorsque vous choisissez un flux de travail :

  • Préférez le cache-aside lorsque votre application peut décider quoi stocker et quand l’actualiser.
  • Préférez la lecture lorsque vous souhaitez que le cache gère l’extraction à partir du magasin “de données si nécessaire.”
  • Envisagez l’écriture différée ou l’écriture différée lorsque le comportement d’écriture est important et que vous souhaitez une approche resynchronisée définie.

Avantages et applications de la mise en cache

Réponses plus rapides avec moins de travail principal

La mise en cache améliore les performances des applications, car la lecture à partir d’un cache en mémoire est plus rapide que la lecture à partir d’un magasin de données piloté par disque. Lorsque davantage de requêtes sont traitées à partir du cache, les systèmes envoient moins de requêtes aux bases de données principales, ce qui peut réduire la nécessité de mettre à l’échelle l’infrastructure de base de données et réduire les coûts associés.

Ce que vous obtenez souvent de la mise en cache
  • Latence inférieure pour les lectures courantes, car les données fréquemment demandées proviennent d’une couche plus rapide.
  • Charge et coût de base de données réduits, car la mise en cache entraîne moins de requêtes de base de données et moins de pression pour surprovisionner les instances de base de données.
  • Débit plus prévisible, car un cache peut gérer un volume de requêtes très élevé par rapport à de nombreuses bases de données.
  • Gestion plus fluide des pics de trafic, car les caches en mémoire peuvent atténuer la latence pendant les périodes à débit élevé.

Meilleure utilisation des ressources de calcul et de stockage

La mise en cache permet de couper le travail répété. Les données lues à plusieurs reprises (ou coûteuses à construire) peuvent être stockées une seule fois et réutilisées. Si une opération effectue un calcul complexe ou transforme des données, la mise en cache du résultat réduit le calcul répété pour les requêtes suivantes.

candidats courants pour les « bonnes caches »
  • Données qui changent rarement (par exemple, les informations de produit et de tarification).
  • Ressources statiques partagées coûteuses à construire.
  • Résultats des opérations calculées à plusieurs reprises.

Applications réelles (où la mise en cache s’affiche)

Sites web : chargements de pages plus rapides et moins d’allers-retours

De nombreux sites mettent en cache la sortie de page (par exemple, les scripts HTML et clients) afin que le serveur puisse retourner la sortie mise en cache au lieu de réexécuter le code de page à chaque fois. La mise en cache prend également en charge les scénarios multimédias web via les caches web et la mise en cache réseau, tels que les réseaux de distribution de contenu (CDN).

Utilisations classiques sur les sites web
  • Mettre en cache la sortie de page complète pour les affichages répétés.
  • Mettez en cache les ressources statiques via la mise en cache réseau/CDN.
Applications et API : lectures plus rapides pour les données partagées

Les applications stockent souvent des sous-ensembles temporaires de données dans un cache pour une récupération rapide, tandis que la base de données primaire conserve le jeu de données durable complet. La mise en cache des données traitées et leur réutilisation peuvent traiter des requêtes plus rapidement que les requêtes de base de données standard.

Modèles d’application courants
  • Mettez en cache les données de référence fréquemment lues (par exemple, la tarification) pour réduire les appels répétés de base de données.
  • Mettez en cache les résultats calculés pour éviter de répéter un travail coûteux.
Serveurs et services : mise à l’échelle des lectures et lissage des pics

Les équipes ajoutent souvent une ou plusieurs couches de cache pour améliorer le débit et la latence, en traitant les requêtes courantes du cache et en réduisant la charge de la base de données. Les caches en mémoire peuvent aider lorsque les pics d’utilisation et la requête de débit augmentent, réduisant ainsi la latence pendant ces périodes.

Où cela est le plus utile
  • Points de terminaison à lecture élevée où les mêmes clés sont souvent demandées.
  • Systèmes qui voient des pics de trafic périodiques.
Systèmes d’entreprise : état de session et données opérationnelles partagées

La mise en cache est souvent utilisée pour stocker de grands volumes de données de session de courte durée (telles que les préférences d’entrée utilisateur ou de personnalisation) dans un magasin en mémoire. Certaines équipes stockent également l’état de session dans le cache afin que les applications avec état puissent conserver le niveau d’application sans état. Pour les systèmes opérationnels, les données qui changent—rarement, telles que les informations—de produit et de tarification, constituent une cible de mise en cache courante.

Exemples que vous pouvez mapper aux charges de travail métier
  • Données de session pour les applications web et mobiles (de courte durée, volume élevé).
  • Lire fréquemment les données de référence opérationnelles (tarification, ressources partagées).

Types de cache

La mise en cache s’affiche dans plusieurs couches entre une application et ses données, y compris les approches côté client et côté serveur.

Cache du navigateur (côté client)

Un cache de navigateur stocke des copies de ressources statiques sur l'appareil d'un utilisateur afin que les visites répétées puissent réutiliser ces fichiers au lieu de les télécharger à nouveau.

Cas d'utilisation courants
  • Ressources de site statiques telles que des images, des fichiers CSS et des fichiers JavaScript.
  • Réduction des allers-retours vers le serveur d’origine pour les ressources récupérées précédemment.

Cache côté serveur

La mise en cache côté serveur s'effectue dans les processus qui exécutent les services métier à distance, plutôt que sur l'appareil de l'utilisateur final. Les caches côté serveur sont souvent privés (locaux à une instance d’application) ou partagés (utilisés par de nombreuses instances d’application).

Cas d'utilisation courants
  • Cache privé en mémoire à l’intérieur d’un processus unique pour des quantités de données statiques peu élevées.
  • Service de cache partagé afin que plusieurs instances d’application lisent les mêmes valeurs mises en cache et évitent “les différentes versions” entre les instances.
  • Données lues fréquemment mais rarement modifiées (par exemple, données de référence sur les produits et les prix).

Cache CDN

Un CDN met en cache le contenu sur des serveurs périphériques plus proches des utilisateurs finaux, de sorte que les requêtes ne reviennent pas toujours à l'origine. Contrairement au cache d'un navigateur (un utilisateur), un cache CDN est partagé : la requête d'un utilisateur peut remplir le contenu qu'un autre utilisateur recevra ultérieurement.

Cas d'utilisation courants
  • Distribution partagée de contenu pouvant être mis en cache à partir d’emplacements périphériques pour réduire les requêtes d’origine.
  • Ressources statiques qui tirent parti de la prise en charge à proximité des utilisateurs (les mêmes types de navigateurs de ressources sont mis en cache, mais qui sont partagés entre les utilisateurs).

Cache processeur/mémoire

La mise en cache n’est pas seulement un modèle de cloud computing : les couches matérielles et mémoire l’utilisent également.

Le cache du processeur est une petite zone de mémoire rapide à proximité (ou sur) du processeur qui stocke des copies des données et des instructions fréquemment utilisées afin de réduire le temps d'attente dans la mémoire principale.

Le cache mémoire (en mémoire) est le type de cache logiciel le plus simple : un magasin en mémoire conservé dans l'espace d'adressage d'un seul processus et accessible directement par ce processus.

Cas d'utilisation courants
  • Cache CPU : accès répété aux mêmes instructions/données sans déplacements fréquents vers la mémoire principale.
  • Cache en mémoire : lectures rapides de quantités de données relativement statiques dans un service en cours d’exécution.

Mise en cache distribuée

Un cache distribué s’étend sur plusieurs serveurs afin que le cache puisse augmenter et augmenter sa capacité transactionnelle au-delà d’un seul ordinateur. De nombreux services de cache partagé utilisent un cluster de serveurs et distribuent les données mises en cache sur le cluster . La mise à l’échelle du cache peut être aussi simple que l’ajout de serveurs supplémentaires. Certaines conceptions distribuées étant également mises en cache de couche, une erreur d’une couche extrait d’un fournisseur en amont, puis stocke le résultat localement pour la requête suivante.

Cas d'utilisation courants
  • Niveau de cache partagé pour plusieurs instances et machines d’application.
  • Charges de travail qui ont besoin d’une capacité de cache et d’un débit qui dépassent un seul hôte.
  • Configurations de cache en couches où l’extraction a échoué en amont, puis conservez une copie locale pour les requêtes suivantes.

Démarrage avec mise en cache

Pourquoi la mise en cache reste importante

La mise en cache maintient les données fréquemment consultées plus près de l'endroit où elles sont utilisées, ce qui peut améliorer les temps de réponse et aider un système à gérer davantage de requêtes simultanées. Elle peut également réduire la contention dans le magasin de données d’origine, par exemple lorsqu’une base de données a des connexions limitées.

Dans les applications distribuées, la mise en cache se produit souvent dans plusieurs emplacements—côté client (par exemple, un navigateur) et côté serveur (dans une application ou un service de cache partagé).

Un moyen pratique de commencer

Commencez petit et concentrez-vous sur les données qui vous donnent le retour le plus clair :

  • Mettre en cache des données à lecture intensive, lentes à récupérer qui changent rarement (par exemple, des données de référence).
  • Déterminez quand les données entrent dans le cache :
    • À la requête dès la première requête, vous ne stockez donc que ce qui est réellement utilisé.
    • Pré-remplissez (amorcez) certains éléments au démarrage si vous savez qu'ils seront demandés plus tôt, tout en surveillant la charge de démarrage sur le magasin d'origine.
  • Choisissez un modèle que vous pouvez gérer. Le modèle cache-aside est courant et ses conseils mettent en évidence l’impact de l’expiration, de l’éviction et de la cohérence sur les résultats.

Conserver les données mises en cache à jour (et votre système résilient)

Un cache contient généralement des copies de données d’un magasin principal, donc l’actualisation nécessite votre attention :

  • Utilisez des stratégies d’expiration pour limiter la durée pendant laquelle les données peuvent rester dans le cache avant d’être actualisées.
  • Observez le comportement d’éviction lorsque les caches se remplissent (de nombreux systèmes suppriment les éléments les moins récemment utilisés par défaut).
  • Ne considérez pas le cache comme le seul emplacement pour les données critiques. Conservez la source de vérité dans le stockage persistant afin que le système puisse continuer si le cache n’est pas disponible.
  • Planifiez un chemin de secours vers le magasin de données d'origine si le cache ne peut pas être atteint et remplissez-le au fur et à mesure des lectures.

La mise en cache est un élément essentiel pour les systèmes modernes, car elle s’adapte à de nombreuses architectures, des services uniques aux applications distribuées—et à la livraison en périphérie. Pour un fournisseur cloud de cache en mémoire géré, vous pouvez explorer Azure.

arrière-plan en dégradé
Ressources

Ressources

Apprentissage
Ressources Azure
Explorez les dernières technologies de développement et apprenez de nouvelles compétences.
Éducation
Ressources pour les étudiants développeurs
Développez vos compétences pour lancer votre carrière et avoir un impact positif sur le monde.
Événements
Événements et webinars Azure
Acquérez de nouvelles compétences, découvrez de nouvelles technologies et communiquez avec votre communauté, en ligne ou en présentiel.
FAQ

Questions fréquentes

  • La mise en cache conserve les données fréquemment consultées en mémoire rapide afin que les applications puissent retourner des résultats rapidement sans atteindre la base de données primaire à chaque fois. Cela réduit la latence et la charge du serveur principal, ce qui permet aux systèmes de gérer davantage de requêtes simultanées.
  • La mise en cache améliore les performances en fournissant des données fréquemment demandées à partir de la mémoire rapide, ce qui réduit la latence, réduit la charge et le coût de la base de données, prend en charge un volume de requêtes élevé et aide pendant les pics de trafic.
  • Un exemple est la mise en cache des résultats : un serveur Web stocke le résultat rendu d'une page (scripts HTML et client) en mémoire, puis diffuse ce résultat mis en cache lors de visites répétées au lieu de réexécuter le code de la page.
  • Un cache stocke un sous-ensemble de données plus petit et temporaire pour un accès rapide, tandis qu’une base de données ou un stockage contient le jeu de données complet et durable pour une conservation à long terme. Si les données mises en cache sont perdues, la copie permanente réside toujours dans la base de données ; les caches ne sont pas censés être le magasin faisant autorité pour les données critiques.