Déterminez si vous souhaitez utiliser Azure Cache pour Redis.

Effectué

Votre site web sur le sport dispose d’une base de données qui retourne des données par exécution de requêtes. Toutefois, le niveau de performance diminue quand la charge est élevée, en particulier lors de grands événements sportifs. Dans les environnements hébergés, l’utilisation accrue des ressources se traduit par une augmentation des coûts. La mise en cache des données garantit le bon fonctionnement et l’exécution à moindre coût de votre site web.

Présentation de la mise en cache

La mise en cache consiste à stocker des données fréquemment sollicitées dans une mémoire très proche de l’application qui les consomme. Vous pouvez utiliser la mise en cache pour améliorer les performances et réduire la charge sur vos serveurs. Nous utilisons Redis pour créer un cache en mémoire capable de fournir une excellente latence et d’améliorer considérablement les performances.

Qu’est-ce qu’un cache Redis ?

Redis (REdistant DIctionary Server) cache est un magasin de paire de valeurs de clé open source, en mémoire. Redis est populaire car il est rapide, il peut de plus stocker et manipuler des types de données courants comme des chaînes, des codes de hachage et des ensembles. Il est également considéré comme adapté aux développeurs, car il prend en charge plusieurs langages comme Python, C, C++, C#, Java et JavaScript entre autres.

Qu’est-ce qu’Azure Cache pour Redis ?

Azure Cache pour Redis est basé sur le célèbre cache Redis open source. Il vous donne accès à un cache Redis dédié et sécurisé, managé par Microsoft. Un cache créé à l’aide d’Azure Cache pour Redis est accessible à partir de n’importe quelle application dans Azure. Azure Cache pour Redis est généralement utilisé pour améliorer les performances des systèmes qui reposent essentiellement sur des magasins de données back-end.

Vos données mises en cache se trouvent en mémoire sur un serveur Azure exécutant le cache Redis, au lieu d’être chargées à partir du disque par une base de données. Votre cache est également hautement évolutif. Vous pouvez modifier la taille et le niveau tarifaire à tout moment.

Quel type de données peut être stocké dans le cache ?

Redis prend en charge différents types de données tous orientés autour de chaînes binaires sûres. Vous pouvez utiliser n’importe quelle séquence binaire pour une valeur, depuis une chaîne comme « i-love-rocky-road » jusqu’au contenu d’un fichier image. Une chaîne vide est également une valeur valide.

  • Chaînes sans échec (le plus courant)
  • Listes de chaînes
  • Ensembles de chaînes non ordonnés
  • Codes de hachage
  • Ensembles de chaînes classés
  • Mappages de chaînes

Chaque valeur de données est associée à une clé qui peut être utilisée pour rechercher la valeur à partir du cache. Redis fonctionne mieux avec de petites valeurs (de 100 Ko maximum) : il est donc recommandé de fractionner les données volumineuses en plusieurs clés. Il est possible de stocker des valeurs plus élevées (jusqu'à 500 Mo), mais cela augmente la latence du réseau et peut entraîner des problèmes de mise en cache et d’insuffisance de mémoire si le cache n’est pas configuré pour expirer les anciennes valeurs.

Qu’est une clé Redis ?

Les clés Redis sont également des chaînes binaires sécurisées. Voici quelques conseils pour choisir des clés :

  • Éviter les clés longues : Elles occupent davantage de mémoire et nécessitent plus de temps de recherche, car elles doivent être comparées octet par octet. Si vous souhaitez utiliser un objet blob binaire comme clé, générez un code de hachage unique et utilisez-le comme clé de substitution. La taille maximale d’une clé est de 512 Mo, mais vous ne devez jamais utiliser une clé de cette taille.
  • Utiliser des clés capables d’identifier les données : Par exemple, sport:football;date:2008-02-02 constitue une meilleure clé que fb:8-2-2. La première est plus lisible et la taille supplémentaire est négligeable. Trouvez un équilibre entre taille et lisibilité.
  • Utiliser une convention : Une bonne convention serait object:ID, comme dans sport:football.

Comment les données sont stockées dans un cache Redis ?

Dans Redis, les données sont stockées dans des nœuds et des clusters.

Les nœuds sont un espace dans Redis où vos données sont stockées.

Les clusters sont des ensembles de trois nœuds ou plus entre lesquels votre jeu de données est réparti. Les clusters sont utiles, car les opérations se poursuivent si un nœud échoue ou ne parvient pas à communiquer avec le reste du cluster.

Présentation des architectures de mise en cache Redis

L’architecture de mise en cache Redis correspond à la façon dont nous répartissons nos données dans le cache. Redis distribue les données de trois manières principales :

  1. Nœud unique
  2. Nœud multiple
  3. En cluster

Les architectures de mise en cache Redis sont réparties par niveaux dans Azure :

Cache de base

Un cache de base vous fournit un cache Redis à nœud unique. Le jeu de données complet est stocké dans un seul nœud. Ce niveau est idéal pour le développement, les tests et les charges de travail non critiques.

Cache standard

Le cache standard crée des architectures à nœuds multiples. Redis réplique un cache dans une configuration principale/secondaire à deux nœuds. Azure gère la réplication entre les deux nœuds et crée un cache prêt pour la production avec la réplication principale/secondaire.

Niveau Premium

Le niveau Premium inclut les fonctionnalités du niveau Standard, mais ajoute la possibilité de conserver des données, de prendre des captures instantanées et de sauvegarder des données. Avec ce niveau, vous pouvez créer un cluster Redis qui partage ces données entre plusieurs nœuds Redis pour augmenter la mémoire disponible. Le niveau Premium prend également en charge un réseau virtuel Azure pour vous donner un contrôle complet de vos connexions, de vos sous-réseaux, de l’adressage IP et de l’isolation réseau. Ce niveau inclut aussi la géoréplication, afin de garantir que vos données sont proches de l’application qui les consomme.

Résumé

Une base de données convient bien pour stocker de grandes quantités de données, mais il y a une latence inhérente lors de la recherche de données. Vous envoyez une requête. Le serveur interprète la requête, recherche les données, puis les retourne. Les serveurs ont également des limites de capacité pour la gestion des requêtes. Si le nombre de requêtes est trop élevé, il est probable que l’extraction de données ralentisse. La mise en cache stocke en mémoire les données fréquemment demandées, ce qui permet de les retourner plus rapidement qu’en interrogeant une base de données. Il en résulte une réduction de la latence et une amélioration des performances. Azure Cache pour Redis vous donne accès à un cache Redis sécurisé, dédié et scalable, hébergé dans Azure et managé par Microsoft.