Configurer Azure Cache pour Redis

Effectué

Votre équipe de développement de statistiques sportives a décidé que la mise en cache pouvait considérablement améliorer les performances des données ayant récemment fait l’objet de requêtes. L’étape suivante consiste à créer et configurer une instance d’Azure Cache pour Redis.

Créer et configurer l’instance d’Azure Cache pour Redis

Vous pouvez créer un cache Redis à l’aide du portail Azure, de l’interface Azure CLI ou d’Azure PowerShell. Pour configurer le cache en fonction de vos besoins, vous devez décider de plusieurs paramètres.

Nom

Le cache Redis doit avoir un nom global unique. Le nom doit être unique dans Azure, car il est utilisé pour générer une URL publique permettant la connexion et la communication avec le service.

Le nom doit contenir de 1 à 63 caractères, et être composé de chiffres, de lettres et du caractère -. Le nom du cache ne peut ni commencer ni se terminer par le caractère -, et il n’accepte pas de caractères - consécutifs.

Resource group

Azure Cache pour Redis est une ressource managée qui nécessite un propriétaire de groupe de ressources. Vous pouvez créer un groupe de ressources ou utiliser un groupe de ressources existant dans un abonnement auquel vous avez accès.

Emplacement

Vous devez décider de l’emplacement physique du cache Redis en sélectionnant une région Azure. Assurez-vous de toujours placer votre instance de cache et votre application dans la même région. La connexion à un cache dans une autre région peut considérablement augmenter la latence et réduire la fiabilité. Si vous vous connectez au cache en dehors d’Azure, sélectionnez un emplacement proche de celui où l’application consommant les données est exécutée.

Important

Placez le cache Redis le plus près possible du consommateur des données.

Niveau tarifaire

Comme indiqué dans l’unité précédente, trois niveaux tarifaires sont disponibles avec Azure Cache pour Redis.

  • De base : le cache de base est idéal pour le développement et les tests. Il est limité à un seul serveur, 53 Go de mémoire et 20 000 connexions. Il n’existe pas de contrat SLA pour ce niveau de service.
  • Standard : il s’agit du cache pour la production qui prend en charge la réplication et inclut un contrat SLA de 99,99 %. Il prend en charge deux serveurs (primaire/secondaire). Il présente les mêmes limites de mémoire et de connexion que celles du niveau De base.
  • Premium : il s’agit du niveau destiné aux entreprises. En plus des fonctionnalités du niveau Standard, il inclut la prise en charge de la persistance, du clustering et du Scale-out de cache. Premium est le niveau de performance le plus élevé, avec jusqu’à 530 Go de mémoire et 40 000 connexions simultanées.

Vous pouvez contrôler la quantité de mémoire cache disponible à chaque niveau en choisissant un niveau de cache entre C0 et C6 pour les niveaux De base/Standard, et entre P0 et P4 pour le niveau Premium. Pour plus d’informations, consultez la page des tarifs.

Conseil

Microsoft recommande de toujours utiliser le niveau Standard ou Premium pour les systèmes de production. Le niveau « De base » est un système à nœud unique sans réplication des données ni contrat SLA. En outre, utilisez au moins un cache C1. Les caches C0 sont réellement destinés aux scénarios de développement/test simples, car ils ont un cœur de processeur partagé et très peu de mémoire.

Le niveau Premium vous permet de conserver les données des deux manières suivantes afin de bénéficier de la reprise d’activité :

  1. La persistance RDB prend un instantané périodique et peut reconstruire le cache en utilisant l’instantané en cas de défaillance.

    Capture d’écran du portail Azure montrant les options de persistance RDB sur une nouvelle instance de cache Redis.

  2. La persistance AOF enregistre chaque opération d’écriture dans un journal qui est enregistré au moins une fois par seconde. AOF crée des fichiers plus grands que RDB, mais offre une perte de données moindre.

    Capture d’écran du portail Azure montrant les options de persistance AOF sur une nouvelle instance de cache Redis.

Il existe plusieurs autres paramètres qui sont disponibles seulement au niveau Premium.

Prise en charge des réseaux virtuels

Si vous créez un cache Redis de niveau Premium, vous pouvez le déployer sur un réseau virtuel dans le cloud. Votre cache sera accessible seulement aux autres machines virtuelles et applications du même réseau virtuel. Le déploiement sur un réseau virtuel offre un niveau de sécurité plus élevé quand votre service et le cache sont tous deux hébergés dans Azure, ou quand ils sont connectés via un VPN de réseau virtuel Azure.

Prise en charge du clustering

Avec un cache Redis de niveau Premium, vous pouvez implémenter le clustering pour fractionner automatiquement votre jeu de données entre plusieurs nœuds. Pour implémenter le clustering, vous spécifiez le nombre de partitions (10 au maximum). Le coût total facturé est le coût du nœud d’origine multiplié par le nombre de partitions.

Accéder à l’instance Redis

Redis prend en charge un ensemble de commandes connues. Une commande est généralement émise en tant que COMMAND parameter1 parameter2 parameter3.

Voici quelques commandes courantes que vous pouvez utiliser :

Commande Description
ping Effectue un test ping sur le serveur. Retourne « PONG ».
set [key] [value] Définit une clé/valeur dans le cache. Retourne « OK » en cas de réussite.
get [key] Obtient une valeur à partir du cache.
exists [key] Retourne « 1 » si la clé (key) existe dans le cache, « 0 » dans le cas contraire.
type [key] Retourne le type associé à la valeur de la clé donnée.
incr [key] Incrémente de « 1 » la valeur donnée associée à la clé (key). La valeur doit être un entier ou une valeur double. Retourne la nouvelle valeur.
incrby [key] [amount] Incrémente la valeur donnée associée à la clé de la quantité spécifiée. La valeur doit être un entier ou une valeur double. Retourne la nouvelle valeur.
del [key] Supprime la valeur associée à la clé.
flushdb Supprime toutes les clés et valeurs dans la base de données.

Redis intègre un outil de ligne de commande (redis-cli) que vous pouvez utiliser pour faire des essais directement avec ces commandes. Voici quelques exemples.

> set somekey somevalue
OK
> get somekey
"somevalue"
> exists somekey
(string) 1
> del somekey
(string) 1
> exists somekey
(string) 0

Voici un exemple d’utilisation des commandes INCR. Ces commandes sont pratiques, car elles permettent des incréments conséquents pour les multiples applications qui utilisent le cache.

> set counter 100
OK
> incr counter
(integer) 101
> incrby counter 50
(integer) 151
> type counter
(integer)

Ajouter un délai d’expiration aux valeurs

La mise en cache est importante car elle nous permet de stocker les valeurs couramment utilisées dans la mémoire. Cependant, nous avons également besoin d’un moyen de faire expirer les valeurs quand elles sont obsolètes. Redis gère l’expiration en appliquant une durée de vie (TTL) à une clé.

Lorsque la TTL expire, la clé est automatiquement supprimée, exactement comme si la commande DEL avait été émise. Voici quelques remarques sur les expirations TTL.

  • Les expirations peuvent être définies avec une précision en secondes ou millisecondes.
  • La résolution de temps d’expiration est toujours d’une milliseconde.
  • Le temps passe virtuellement, même quand votre serveur Redis reste arrêté.
  • Les informations d’expiration sont répliquées et conservées sur le disque.
  • Redis enregistre la date d’expiration d’une clé.

Voici un exemple d’expiration :

> set counter 100
OK
> expire counter 5
(integer) 1
> get counter
100
... wait ...
> get counter
(nil)

Accéder à un cache Redis à partir d’un client

Pour vous connecter à une instance d’Azure Cache pour Redis, vous devez fournir plusieurs informations. Les clients ont besoin du nom d’hôte, du port et d’une clé d’accès du cache. Vous pouvez obtenir ces informations à partir de la page Paramètres > Clés d’accès du portail Azure.

  • Le nom d’hôte est l’adresse Internet publique de votre cache, qui a été créée en utilisant le nom du cache, par exemple, sportsresults.redis.cache.windows.net.

  • La clé d’accès joue le rôle de mot de passe pour votre cache. Deux clés sont créées : une clé principale et une clé secondaire. Vous pouvez utiliser l’une ou l’autre des clés, et deux clés sont fournies au cas où vous devriez modifier la clé principale. Vous pouvez basculer tous vos clients vers la clé secondaire et régénérer la clé primaire. Cependant, les applications utilisant la clé principale d’origine seront bloquées. Microsoft recommande de régénérer régulièrement les clés, tout comme vous le feriez pour vos mots de passe.

Avertissement

Vos clés d’accès doivent être considérées comme des informations confidentielles. Gérez-les de la même façon que vos mots de passe. Toute personne possédant une clé d’accès peut effectuer n’importe quelle opération sur votre cache !