Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment développer du code pour Azure Redis managé.
Résilience de la connexion et charge du serveur
Lors du développement d’applications clientes, tenez compte des meilleures pratiques pertinentes pour la résilience des connexions et la gestion de la charge du serveur.
Prendre en compte d’autres clés et des valeurs plus petites
Azure Managed Redis fonctionne mieux avec des valeurs plus petites. Pour répartir les données sur plusieurs clés, envisagez de diviser des blocs de données plus volumineux en blocs plus petits. Pour plus d’informations sur la taille de valeur idéale, consultez cet article.
Taille importante de la demande ou de la réponse
Une demande ou une réponse volumineuse peut entraîner des délais d’expiration. Par exemple, supposons que vous configurez la valeur de délai d’expiration sur votre client comme 1 seconde. Votre application demande deux clés (par exemple, A et B) en même temps (à l’aide de la même connexion réseau physique). La plupart des clients prennent en charge l’envoi en pipeline des requêtes, dans lequel les deux requêtes A et B sont envoyées l’une après l’autre sans attendre une réponse. Le serveur renvoie les réponses dans le même ordre. Si la réponse A est volumineuse, elle peut consommer la plupart du délai d’attente pour les requêtes ultérieures.
Dans l’exemple suivant, les demandes A et B sont envoyées rapidement au serveur. Le serveur commence à envoyer des réponses A et B rapidement. En raison des temps de transfert de données, la réponse B doit attendre derrière les délais de réponse A même si le serveur a répondu rapidement.
|-------- 1 Second Timeout (A)----------|
|-Request A-|
|-------- 1 Second Timeout (B) ----------|
|-Request B-|
|- Read Response A --------|
|- Read Response B-| (**TIMEOUT**)
Ce modèle de demande et de réponse est difficile à mesurer. Vous pouvez instrumenter votre code client pour suivre les requêtes et les réponses volumineuses.
Les solutions pour les réponses de grande taille varient, mais incluent :
- Optimiser votre application pour prendre en charge un grand nombre de petites valeurs plutôt qu’un petit nombre de grandes valeurs
- Décomposez vos données en valeurs plus petites associées.
- Consultez le billet Quelle est la plage de tailles de valeur idéale pour redis ? 100 Ko trop volumineux ? pour plus d’informations sur la raison pour laquelle des valeurs plus petites sont recommandées.
- Augmentez la taille de votre machine virtuelle pour obtenir des fonctionnalités de bande passante plus élevées.
- Une plus grande quantité de bande passante sur votre machine virtuelle cliente ou serveur peut réduire le temps de transfert des données pour les réponses volumineuses.
- Comparez l’utilisation actuelle du réseau par les deux ordinateurs aux limites associées à la taille de votre machine virtuelle. Une bande passante plus élevée seulement sur le serveur ou sur le client peut ne pas suffire.
- Augmenter le nombre d’objets de connexion qu’utilise votre application
- Utilisez un tourniquet (round-robin) pour envoyer des requêtes vers différents objets de connexion.
Utilisez le traitement en pipeline
Essayez de choisir un client Redis qui prend en charge le traitement en pipeline Redis. Le traitement en pipeline permet d’utiliser efficacement le réseau et d’obtenir le meilleur débit possible.
Éviter les opérations coûteuses
Certaines opérations Redis, comme la commande KEYS , sont coûteuses et vous devez les éviter. Pour connaître quelques éléments à prendre en compte concernant les commandes de longue durée, consultez Commandes de longue durée.
Choisir un niveau approprié
Azure Managed Redis offre des niveaux Mémoire Optimisé, Équilibré, Calcul Optimisé et Flash Optimisé. Pour plus d’informations sur la façon de choisir un niveau, consultez Comment mettre à l’échelle. Testez les performances pour choisir le niveau approprié et valider les paramètres de connexion. Pour plus d’informations, consultez Test de performances.
Choisir un mode de disponibilité approprié
Azure Managed Redis offre la possibilité d’activer ou de désactiver la configuration de haute disponibilité. Lorsque vous désactivez le mode haute disponibilité, les données de votre instance AMR ne sont pas répliquées et votre instance Redis n’est pas disponible pendant la maintenance. Toutes les données de l’instance AMR sont perdues pendant la maintenance planifiée ou non planifiée. Désactivez la haute disponibilité uniquement pour vos charges de travail de développement ou de test. Les performances des instances Redis avec une haute disponibilité peuvent également être inférieures en raison de l’absence de réplication des données, ce qui est essentiel pour répartir la charge entre la partition de données principale et réplica.
Client dans la même région que l’instance Redis
Recherchez votre instance Redis et votre application dans la même région. La connexion à un Redis situé dans une autre région peut considérablement augmenter la latence et diminuer la fiabilité.
Bien que vous puissiez vous connecter en dehors de Azure, il n'est pas recommandé, en particulier lorsque vous utilisez Redis pour accélérer les performances de votre application ou de votre base de données. Si vous utilisez le serveur Redis simplement comme magasin de clés/valeurs, la latence n’est sans doute pas votre première préoccupation.
S’appuyer sur l’adresse IP non publique du nom d’hôte
L’adresse IP affectée à votre cache peut changer en raison d’une opération de mise à l’échelle ou d’une amélioration du back-end. Utilisez le nom d’hôte au lieu d’une adresse IP publique ou privée explicite. L’adresse IP statique configurée pour un cache dans un réseau virtuel n’est pas une garantie immuable et peut changer pendant certaines opérations, bien que les modifications soient rares.
Les noms d’hôte dans Azure Redis managé ressemblent à ceci : <DNS name>.<Azure region>.redis.azure.net
Utiliser le chiffrement TLS
Azure Managed Redis nécessite des communications chiffrées TLS par défaut. Les versions TLS 1.2 et 1.3 sont actuellement prises en charge. Si votre outil ou bibliothèque de client ne prend pas en charge TLS, vous pouvez activer des connexions non chiffrées.
Surveiller l’utilisation de la mémoire, les métriques d’utilisation du processeur, les connexions clientes et la bande passante réseau
Lorsque vous utilisez Azure instance Redis managée en production, définissez des alertes pour Pourcentage de mémoire inutilisée, CPU et Clients connectés. Si ces métriques sont constamment supérieures à 75 %, envisagez de mettre à l’échelle votre instance vers une catégorie offrant une mémoire plus grande ou un débit supérieur. Pour plus d’informations, consultez quand effectuer une mise à l’échelle. Pour plus d’informations sur la façon dont la mémoire est signalée et comment planifier la capacité, consultez la gestion de la mémoire.
Envisagez d’activer la persistance des données ou la sauvegarde des données
Redis est conçu pour les données éphémères par défaut, ce qui signifie que, dans de rares cas, vos données peuvent être perdues en raison de diverses circonstances telles que la maintenance ou les pannes. Si votre application est sensible à la perte de données, activez la persistance des données ou la sauvegarde périodique des données à l’aide de l’opération d’exportation de données.
La fonctionnalité de persistance des données fournit automatiquement un point de récupération rapide pour les données lorsqu’un cache tombe en panne. La récupération rapide est possible, car la fonctionnalité stocke le fichier RDB ou AOF dans un disque managé qu’il monte sur l’instance de cache. Les utilisateurs ne peuvent pas accéder aux fichiers de persistance sur le disque, et aucune autre instance AMR ne peut les utiliser.
De nombreux clients souhaitent utiliser la persistance pour effectuer des sauvegardes périodiques des données dans leur cache. N’utilisez pas la persistance des données à cet effet. Utilisez plutôt la fonctionnalité d’importation/exportation. Vous pouvez exporter des copies des données au format RDB directement dans le compte de stockage de votre choix et déclencher l’exportation des données aussi souvent que vous le souhaitez. Vous pouvez déclencher l’exportation à partir du portail ou à l’aide des outils CLI, PowerShell ou SDK.
Conseils pour la bibliothèque cliente
Pour plus d’informations, consultez les bibliothèques clientes Azure Managed Redis.