FAQ sur le cache Azure pour RedisAzure Cache for Redis FAQ

Découvrez les réponses aux questions les plus fréquentes, les modèles et les meilleures pratiques concernant le Cache Azure pour Redis.Learn the answers to common questions, patterns, and best practices for Azure Cache for Redis.

Que dois-je faire si je n’ai pas trouvé de réponse à ma question ici ?What if my question isn't answered here?

Si votre question n’est pas répertoriée ici, faites-le-nous savoir et nous vous aiderons à trouver une réponse.If your question isn't listed here, let us know and we'll help you find an answer.

  • Vous pouvez publier une question dans les commentaires à la fin de cette FAQ et collaborer avec l’équipe Azure Cache et d’autres membres de la communauté en cas de question sur cet article.You can post a question in the comments at the end of this FAQ and engage with the Azure Cache team and other community members about this article.
  • Pour atteindre un public plus large, vous pouvez publier une question sur le Forum Azure Cache MSDN et collaborer avec l’équipe Azure Cache et d’autres membres de la Communauté.To reach a wider audience, you can post a question on the Azure Cache MSDN Forum and engage with the Azure Cache team and other members of the community.
  • Si vous souhaitez effectuer une demande de fonctionnalité, vous pouvez envoyer vos demandes et idées à Azure Cache for Redis User Voice.If you want to make a feature request, you can submit your requests and ideas to Azure Cache for Redis User Voice.
  • Vous pouvez également nous envoyer un e-mail par le biais de Azure Cache External Feedback.You can also send an email to us at Azure Cache External Feedback.

Concepts de base du Cache Azure pour RedisAzure Cache for Redis basics

Les Forums aux questions de cette section couvrent des principes fondamentaux du Cache Azure pour Redis.The FAQs in this section cover some of the basics of Azure Cache for Redis.

Les Forums aux questions suivants couvrent les concepts de base, et les questions sur le Cache Azure pour Redis sont traitées dans une des autres sections des Forums aux questions.The following FAQs cover basic concepts and questions about Azure Cache for Redis and are answered in one of the other FAQ sections.

Forum aux questions sur la planificationPlanning FAQs

Forum aux questions sur le développementDevelopment FAQs

Forum aux questions sur la sécuritéSecurity FAQs

Forum aux questions sur la productionProduction FAQs

Forum aux questions sur la surveillance et le dépannageMonitoring and troubleshooting FAQs

Le Forum aux questions de cette section couvre des questions courantes liées à la surveillance et au dépannage.The FAQs in this section cover common monitoring and troubleshooting questions. Pour plus d’informations sur la surveillance et le dépannage de vos instances du Cache Azure pour Redis, voir Surveillance du Cache Azure pour Redis et Résolution des problèmes du Cache Azure pour Redis.For more information about monitoring and troubleshooting your Azure Cache for Redis instances, see How to monitor Azure Cache for Redis and How to troubleshoot Azure Cache for Redis.

Forum aux questions sur les offres de cache précédentesPrior Cache offering FAQs

Présentation du cache Azure pour RedisWhat is Azure Cache for Redis?

Le cache Azure pour Redis est dérivé du très populaire logiciel open source Redis.Azure Cache for Redis is based on the popular open-source software Redis. Il vous permet d’accéder à un Cache Azure pour Redis sécurisé et dédié, géré par Microsoft et accessible depuis une application dans Azure.It gives you access to a secure, dedicated Azure Cache for Redis, managed by Microsoft, and accessible from any application within Azure. Pour une présentation plus détaillée, consultez la page produit Cache Azure pour Redis sur Azure.com.For a more detailed overview, see the Azure Cache for Redis product page on Azure.com.

Bien démarrer avec le Cache Azure pour RedisHow can I get started with Azure Cache for Redis?

Il existe plusieurs façons de démarrer avec le Cache Azure pour Redis.There are several ways you can get started with Azure Cache for Redis.

Si vous n’avez pas encore de compte Azure, vous pouvez :If you don't already have an Azure account, you can:

Que propose le Cache Azure pour Redis et quelle taille dois-je utiliser ?What Azure Cache for Redis offering and size should I use?

Chaque offre Cache Azure pour Redis propose différents niveaux de taille, de bande passante, de haute disponibilité et de contrat SLA.Each Azure Cache for Redis offering provides different levels of size, bandwidth, high availability, and SLA options.

Voici quelques considérations relatives au choix d’une offre de Cache :The following are considerations for choosing a Cache offering.

  • Mémoire : Les niveaux De base et Standard offrent respectivement 250 Mo et 53 Go.Memory: The Basic and Standard tiers offer 250 MB – 53 GB. Le niveau Premium offre jusqu’à 1,2 To (en tant que cluster) ou 120 Go (non-cluster).The Premium tier offers up to 1.2 TB (as a cluster) or 120 GB (non-clustered). Pour plus d’informations, consultez Tarification du Cache Azure pour Redis.For more information, see Azure Cache for Redis Pricing.
  • Performances réseau : Si vous avez une charge de travail qui nécessite un débit élevé, le niveau Premium offre davantage de bande passante par rapport au niveau Standard ou De base.Network Performance: If you have a workload that requires high throughput, the Premium tier offers more bandwidth compared to Standard or Basic. En outre, à chaque niveau les caches de taille supérieure offrent davantage de bande passante en raison de la machine virtuelle sous-jacente qui héberge le cache.Also within each tier, larger size caches have more bandwidth because of the underlying VM that hosts the cache. Pour plus d’informations, consultez le tableau suivant.For more information, see the following table.
  • Débit : Le niveau Premium offre le débit maximal disponible.Throughput: The Premium tier offers the maximum available throughput. Si le client ou le serveur de cache atteint la limite de bande passante, vous risquez de recevoir des erreurs d’expiration du côté client.If the cache server or client reaches the bandwidth limits, you may receive timeouts on the client side. Pour plus d’informations, consultez le tableau suivant.For more information, see the following table.
  • Haute disponibilité/contrat SLA : Le Cache Azure pour Redis garantit la disponibilité d’un cache Standard/Premium à au moins 99,9 % du temps.High Availability/SLA: Azure Cache for Redis guarantees that a Standard/Premium cache is available at least 99.9% of the time. Pour en savoir plus sur notre contrat SLA, consultez Tarification du Cache Azure pour Redis.To learn more about our SLA, see Azure Cache for Redis Pricing. Le contrat SLA couvre uniquement la connectivité aux points de terminaison du Cache.The SLA only covers connectivity to the Cache endpoints. Le contrat SLA ne couvre pas la protection contre la perte de données.The SLA does not cover protection from data loss. Nous vous recommandons d’utiliser la fonctionnalité de persistance des données Redis disponible au niveau Premium pour accroître la résilience contre la perte de données.We recommend using the Redis data persistence feature in the Premium tier to increase resiliency against data loss.
  • Persistance des données Redis : Le niveau Premium vous permet de conserver les données du cache dans un compte de stockage Azure.Redis Data Persistence: The Premium tier allows you to persist the cache data in an Azure Storage account. Dans un cache De base/Standard, toutes les données sont stockées uniquement dans la mémoire.In a Basic/Standard cache, all the data is stored only in memory. Les problèmes d’infrastructure sous-jacents peuvent entraîner une éventuelle perte de données.Underlying infrastructure issues might result in potential data loss. Nous vous recommandons d’utiliser la fonctionnalité de persistance des données Redis disponible au niveau Premium pour accroître la résilience contre la perte de données.We recommend using the Redis data persistence feature in the Premium tier to increase resiliency against data loss. Le Cache Azure pour Redis propose des options RDB et AOF (à venir) de persistance Redis.Azure Cache for Redis offers RDB and AOF (coming soon) options in Redis persistence. Pour plus d’informations, consultez Comment configurer la persistance pour un Cache Azure pour Redis Premium.For more information, see How to configure persistence for a Premium Azure Cache for Redis.
  • Cluster Redis : Pour créer des caches de plus de 120 Go ou partager des données parmi plusieurs nœuds Redis, vous pouvez utiliser le clustering Redis disponible au niveau Premium.Redis Cluster: To create caches larger than 120 GB, or to shard data across multiple Redis nodes, you can use Redis clustering, which is available in the Premium tier. Chaque nœud se compose d’une paire de caches principal/réplica pour la haute disponibilité.Each node consists of a primary/replica cache pair for high availability. Pour plus d’informations, consultez Comment configurer le clustering Redis pour un Cache Azure pour Redis Premium.For more information, see How to configure clustering for a Premium Azure Cache for Redis.
  • Sécurité et isolation réseau accrues : Le déploiement Réseau virtuel Azure fournit une sécurité et une isolation améliorées pour le cache Azure pour Redis, ainsi que des sous-réseaux, des stratégies de contrôle d’accès et d’autres fonctionnalités permettant de restreindre davantage l’accès.Enhanced security and network isolation: Azure Virtual Network (VNET) deployment provides enhanced security and isolation for your Azure Cache for Redis, as well as subnets, access control policies, and other features to further restrict access. Pour plus d’informations, consultez Comment configurer la prise en charge des réseaux virtuels pour un Cache Azure pour Redis Premium.For more information, see How to configure Virtual Network support for a Premium Azure Cache for Redis.
  • Configurer Redis : Aux niveaux Standard et Premium, vous pouvez configurer Redis pour les notifications d’espace de clés.Configure Redis: In both the Standard and Premium tiers, you can configure Redis for Keyspace notifications.
  • Nombre maximal de connexions client : Le niveau Premium offre le nombre maximal de clients pouvant se connecter à Redis, avec un nombre de connexions plus élevé pour les caches de taille supérieure.Maximum number of client connections: The Premium tier offers the maximum number of clients that can connect to Redis, with a higher number of connections for larger sized caches. Le clustering n’augmente pas le nombre de connexions disponibles pour un cache en cluster.Clustering does not increase the number of connections available for a clustered cache. Pour plus d’informations, consultez Tarification du Cache Azure pour Redis.For more information, see Azure Cache for Redis pricing.
  • Noyau dédié pour le serveur Redis : Au niveau Premium, toutes les tailles de cache ont un noyau dédié pour Redis.Dedicated Core for Redis Server: In the Premium tier, all cache sizes have a dedicated core for Redis. Aux niveaux De base/Standard, les tailles C1 et supérieures ont un noyau dédié pour le serveur Redis.In the Basic/Standard tiers, the C1 size and above have a dedicated core for Redis server.
  • Redis étant monothread , le fait d’avoir plus de deux cœurs n’offre aucun avantage supplémentaire, mais les machines virtuelles de grande taille ont généralement plus de bande passante que les plus petites.Redis is single-threaded so having more than two cores does not provide additional benefit over having just two cores, but larger VM sizes typically have more bandwidth than smaller sizes. Si le client ou le serveur de cache atteint la limite de bande passante, vous recevez des erreurs d’expiration du côté client.If the cache server or client reaches the bandwidth limits, then you receive timeouts on the client side.
  • Amélioration des performances : Les caches au niveau Premium sont déployés sur du matériel qui dispose de processeurs plus rapides et offrent de meilleures performances par rapport au niveau De base ou Standard.Performance improvements: Caches in the Premium tier are deployed on hardware that has faster processors, giving better performance compared to the Basic or Standard tier. Les caches de niveau Premium ont un débit supérieur et des latences moindres.Premium tier Caches have higher throughput and lower latencies.

Performances du Cache Azure pour RedisAzure Cache for Redis performance

Le tableau suivant présente les valeurs maximales de bande passante observées lors de tests exécutés sur différentes tailles de caches Standard et Premium à l’aide de redis-benchmark.exe à partir d’une machine virtuelle IaaS sur le point de terminaison du Cache Azure pour Redis.The following table shows the maximum bandwidth values observed while testing various sizes of Standard and Premium caches using redis-benchmark.exe from an IaaS VM against the Azure Cache for Redis endpoint. Pour le débit SSL, redis-benchmark est utilisé avec le stunnel pour se connecter au point de terminaison du Cache Azure pour Redis.For SSL throughput, redis-benchmark is used with stunnel to connect to the Azure Cache for Redis endpoint.

Notes

Ces valeurs ne sont pas garanties et il n’y a pas de contrat SLA pour ces chiffres, mais ils sont à peu près normaux.These values are not guaranteed and there is no SLA for these numbers, but should be typical. Vous devez tester la charge de votre application pour déterminer la taille de cache adaptée.You should load test your own application to determine the right cache size for your application. Ces chiffres peuvent changer au fur et à mesure que nous publions des résultats plus récents.These numbers might change as we post newer results periodically.

De ce tableau, nous pouvons tirer les conclusions suivantes :From this table, we can draw the following conclusions:

  • Le débit des caches de taille identique est plus élevé dans le niveau Premium que dans le niveau Standard.Throughput for the caches that are the same size is higher in the Premium tier as compared to the Standard tier. Par exemple, avec un cache de 6 Go, le débit de P1 s’élève à 180 000 demandes par seconde par rapport à 100 000 demandes par seconde pour C3.For example, with a 6 GB Cache, throughput of P1 is 180,000 requests per second (RPS) as compared to 100,000 RPS for C3.
  • Avec le clustering Redis, le débit augmente de façon linéaire à mesure que vous augmentez le nombre de partitions (nœuds) dans le cluster.With Redis clustering, throughput increases linearly as you increase the number of shards (nodes) in the cluster. Par exemple, si vous créez un cluster P4 de 10 partitions, alors le débit disponible s’élève à 400 000 *10 = 4 millions de demandes par seconde.For example, if you create a P4 cluster of 10 shards, then the available throughput is 400,000 * 10 = 4 million RPS.
  • Pour les tailles de clé supérieures, le débit du niveau Premium est plus élevé que celui du niveau Standard.Throughput for bigger key sizes is higher in the Premium tier as compared to the Standard Tier.
Niveau tarifairePricing tier SizeSize Cœurs d’unité centraleCPU cores Bande passante disponibleAvailable bandwidth Taille de la valeur 1 Ko1-KB value size Taille de la valeur 1 Ko1-KB value size
Tailles de cache StandardStandard cache sizes Mégabits par seconde (Mbit/s) / mégaoctets par seconde (Mo/s)Megabits per sec (Mb/s) / Megabytes per sec (MB/s) Demandes par seconde (RPS) hors SSLRequests per second (RPS) Non-SSL Demandes par seconde (RPS) SSLRequests per second (RPS) SSL
C0C0 250 Mo250 MB PartagéShared 100 / 12,5100 / 12.5 15 00015,000 7 5007,500
C1C1 1 Go1 GB 11 500 / 62,5500 / 62.5 38 00038,000 20 72020,720
C2C2 2,5 Go2.5 GB 22 500 / 62,5500 / 62.5 41 00041,000 37 00037,000
C3C3 6 Go6 GB 44 1 000 / 1251000 / 125 100 000100,000 90 00090,000
C4C4 13 Go13 GB 22 500 / 62,5500 / 62.5 60 00060,000 55 00055,000
C5C5 26 Go26 GB 44 1 000 / 1251,000 / 125 102 000102,000 93 00093,000
C6C6 53 Go53 GB 88 2 000 / 2502,000 / 250 126 000126,000 120 000120,000
Tailles de cache PremiumPremium cache sizes Cœurs de processeur par partitionCPU cores per shard Mégabits par seconde (Mbit/s) / mégaoctets par seconde (Mo/s)Megabits per sec (Mb/s) / Megabytes per sec (MB/s) Demandes par seconde (RPS) hors SSL, par partitionRequests per second (RPS) Non-SSL, per shard Demandes par seconde (RPS) SSL, par partitionRequests per second (RPS) SSL, per shard
P1P1 6 Go6 GB 22 1 500 / 187,51,500 / 187.5 180 000180,000 172 000172,000
P2P2 13 Go13 GB 44 3 000 / 3753,000 / 375 350 000350,000 341 000341,000
P3P3 26 Go26 GB 44 3 000 / 3753,000 / 375 350 000350,000 341 000341,000
P4P4 53 Go53 GB 88 6 000 / 7506,000 / 750 400 000400,000 373 000373,000
P5P5 120 Go120 GB 2020 6 000 / 7506,000 / 750 400 000400,000 373 000373,000

Pour obtenir des instructions sur la configuration du stunnel ou le téléchargement des outils Redis comme redis-benchmark.exe, consultez la section Comment exécuter des commandes Redis ?.For instructions on setting up stunnel or downloading the Redis tools such as redis-benchmark.exe, see the How can I run Redis commands? section.

Dans quelle région dois-je placer mon cache ?In what region should I locate my cache?

Pour optimiser les performances et la latence, placez votre Cache Azure pour Redis dans la même région que celle de votre application de client de cache.For best performance and lowest latency, locate your Azure Cache for Redis in the same region as your cache client application.

Comment suis-je facturé pour le Cache Azure pour Redis ?How am I billed for Azure Cache for Redis?

La tarification du Cache Azure pour Redis est disponible ici.Azure Cache for Redis pricing is here. La page Tarifs appliqués répertorie les tarifs appliqués à un taux horaire.The pricing page lists pricing as an hourly rate. Les caches sont facturés à la minute, de la création du cache jusqu’à sa suppression.Caches are billed on a per-minute basis from the time that the cache is created until the time that a cache is deleted. Aucune option ne vous permet d’arrêter ou de suspendre la facturation d'un cache.There is no option for stopping or pausing the billing of a cache.

Puis-je utiliser le Cache Azure pour Redis avec le cloud Azure Government, le cloud Azure Chine ou Microsoft Azure Allemagne ?Can I use Azure Cache for Redis with Azure Government Cloud, Azure China Cloud, or Microsoft Azure Germany?

Oui, le Cache Azure pour Redis est disponible dans le cloud Azure Government, le cloud Azure Chine 21Vianet et Microsoft Azure Allemagne.Yes, Azure Cache for Redis is available in Azure Government Cloud, Azure China 21Vianet Cloud, and Microsoft Azure Germany. Les URL d’accès et de gestion du Cache Azure pour Redis diffèrent de celles du cloud public Azure.The URLs for accessing and managing Azure Cache for Redis are different in these clouds compared with Azure Public Cloud.

CloudCloud Suffixe DNS pour RedisDns Suffix for Redis
PublicPublic *.redis.cache.windows.net*.redis.cache.windows.net
Gouvernement des États-UnisUS Gov *.redis.cache.usgovcloudapi.net*.redis.cache.usgovcloudapi.net
AllemagneGermany *.redis.cache.cloudapi.de*.redis.cache.cloudapi.de
ChineChina *.redis.cache.chinacloudapi.cn*.redis.cache.chinacloudapi.cn

Pour plus d’informations sur les éléments à prendre en compte lors de l’utilisation du Cache Azure pour Redis avec d’autres clouds, consultez les liens suivants.For more information on considerations when using Azure Cache for Redis with other clouds, see the following links.

Pour plus d’informations sur l’utilisation du Cache Azure pour Redis avec PowerShell dans le cloud Azure Government, le cloud Azure Chine 21Vianet et Microsoft Azure Allemagne, consultez Comment se connecter aux autres clouds - Cache Azure pour Redis PowerShell.For information on using Azure Cache for Redis with PowerShell in Azure Government Cloud, Azure China 21Vianet Cloud, and Microsoft Azure Germany, see How to connect to other clouds - Azure Cache for Redis PowerShell.

En quoi consistent les options de configuration StackExchange.Redis ?What do the StackExchange.Redis configuration options do?

StackExchange.Redis présente de nombreuses options.StackExchange.Redis has many options. Cette section présente certains des paramètres les plus courants.This section talks about some of the common settings. Pour plus d’informations sur les options de StackExchange.Redis, consultez la page Configuration StackExchange.Redis.For more detailed information about StackExchange.Redis options, see StackExchange.Redis configuration.

ConfigurationOptionsConfigurationOptions DescriptionDescription RecommandationRecommendation
AbortOnConnectFailAbortOnConnectFail Lorsque la valeur est True, la connexion n’est pas rétablie après une panne réseau.When set to true, the connection will not reconnect after a network failure. La valeur False laisse StackExchange.Redis se reconnecter automatiquement .Set to false and let StackExchange.Redis reconnect automatically.
ConnectRetryConnectRetry Nombre de tentatives de connexion pendant la connexion initiale.The number of times to repeat connection attempts during initial connect. Reportez-vous aux notes suivantes.See the following notes for guidance.
ConnectTimeoutConnectTimeout Délai d’expiration en millisecondes pour les opérations de connexion.Timeout in ms for connect operations. Reportez-vous aux notes suivantes.See the following notes for guidance.

Généralement, les valeurs par défaut du client sont suffisantes.Usually the default values of the client are sufficient. Vous pouvez affiner les options en fonction de votre charge de travail.You can fine-tune the options based on your workload.

  • Nouvelle tentativesRetries
    • Pour ConnectRetry et ConnectTimeout, la recommandation générale consiste à effectuer un Fail-fast, puis à réessayer.For ConnectRetry and ConnectTimeout, the general guidance is to fail fast and retry again. Cela dépend de votre charge de travail et de combien de temps en moyenne votre client prend pour émettre une commande Redis et recevoir une réponse.This guidance is based on your workload and how much time on average it takes for your client to issue a Redis command and receive a response.
    • Laissez StackExchange.Redis se reconnecter automatiquement au lieu de vérifier l’état de la connexion et de vous reconnecter vous-même.Let StackExchange.Redis automatically reconnect instead of checking connection status and reconnecting yourself. Évitez d’utiliser la propriété ConnectionMultiplexer.IsConnected.Avoid using the ConnectionMultiplexer.IsConnected property.
    • Effet boule de neige : vous pouvez parfois rencontrer un problème, vous réessayez, mais le problème ne fait que grossir et n’est jamais résolu.Snowballing - sometimes you may run into an issue where you are retrying and the retries snowball and never recovers. Dans ce cas, envisagez d’utiliser un algorithme de nouvelle tentative d’interruption exponentiel, comme décrit dans l’article Conseils généraux sur les nouvelles tentatives, publié par le groupe Microsoft Patterns & Practices.If snowballing occurs, you should consider using an exponential backoff retry algorithm as described in Retry general guidance published by the Microsoft Patterns & Practices group.
  • Valeurs de délai d’expirationTimeout values
    • Réfléchissez à votre charge de travail et définissez les valeurs en conséquence.Consider your workload and set the values accordingly. Si vous stockez des valeurs élevées, définissez le délai sur une valeur plus élevée.If you are storing large values, set the timeout to a higher value.
    • Définissez AbortOnConnectFail sur False et laissez StackExchange.Redis se reconnecter pour vous.Set AbortOnConnectFail to false and let StackExchange.Redis reconnect for you.
    • Utilisez une seule instance de ConnectionMultiplexer pour l’application.Use a single ConnectionMultiplexer instance for the application. Vous pouvez utiliser une LazyConnection pour créer une instance unique qui est renvoyée par une propriété Connection, comme indiqué dans Connexion au cache avec la classe ConnectionMultiplexer.You can use a LazyConnection to create a single instance that is returned by a Connection property, as shown in Connect to the cache using the ConnectionMultiplexer class.
    • Définissez la propriété ConnectionMultiplexer.ClientName sur un nom d’instance unique pour faciliter le diagnostic.Set the ConnectionMultiplexer.ClientName property to an app instance unique name for diagnostic purposes.
    • Utilisez plusieurs instances ConnectionMultiplexer pour les charges de travail personnalisées.Use multiple ConnectionMultiplexer instances for custom workloads.
      • Vous pouvez suivre ce modèle si vous savez que la charge de votre application est variable.You can follow this model if you have varying load in your application. Par exemple :For example:
      • Vous pouvez avoir un multiplexeur pour gérer les clés de grande taille.You can have one multiplexer for dealing with large keys.
      • Vous pouvez avoir un multiplexeur pour gérer les clés de petite taille.You can have one multiplexer for dealing with small keys.
      • Vous pouvez définir différentes valeurs pour l’expiration du délai et la logique des nouvelles tentatives pour chaque ConnectionMultiplexer que vous utilisez.You can set different values for connection timeouts and retry logic for each ConnectionMultiplexer that you use.
      • Définissez la propriété ClientName de chaque multiplexeur pour faciliter le diagnostic.Set the ClientName property on each multiplexer to help with diagnostics.
      • Cette recommandation permet d’obtenir une latence optimisée par ConnectionMultiplexer.This guidance may lead to more streamlined latency per ConnectionMultiplexer.

Quels clients du Cache Azure pour Redis puis-je utiliser ?What Azure Cache for Redis clients can I use?

L’un des grands avantages de Redis est qu’il existe de nombreux clients prenant en charge de nombreux langages de développement différents.One of the great things about Redis is that there are many clients supporting many different development languages. Pour obtenir la liste actuelle des clients, consultez la page des clients Redis.For a current list of clients, see Redis clients. Pour obtenir des tutoriels qui couvrent les différents langages et clients, consultez Utiliser le cache Azure pour Redis et les articles connexes dans la table des matières.For tutorials that cover several different languages and clients, see How to use Azure Cache for Redis and it's sibling articles in the table of contents.

Récupération du nom d’hôte, des ports et des clés d’accès à l’aide du portail AzureRetrieve host name, ports, and access keys by using the Azure portal

Lors de la connexion à une instance de cache Azure pour Redis, les clients de cache ont besoin du nom d’hôte, des ports et d’une clé pour le cache.When connecting to an Azure Cache for Redis instance, cache clients need the host name, ports, and a key for the cache. Certains clients peuvent référencer ces éléments par des noms légèrement différents.Some clients might refer to these items by slightly different names. Vous pouvez récupérer ces informations dans le portail Azure.You can retrieve this information in the Azure portal.

Récupération des clés d'accès et du nom d’hôteTo retrieve the access keys and host name

  1. Pour récupérer les clés d’accès à l’aide du portail Azure, accédez à votre cache, puis sélectionnez Clés d’accès.To retrieve the access keys by using the Azure portal, go to your cache and select Access keys.

    Clés du cache Azure pour Redis

  2. Pour récupérer le nom d’hôte et les ports, sélectionnez Propriétés.To retrieve the host name and ports, select Properties.

    Propriétés du cache Azure pour Redis

Existe-t-il un émulateur local pour le Cache Azure pour Redis ?Is there a local emulator for Azure Cache for Redis?

Il n’existe aucun émulateur local pour le Cache Azure pour Redis, mais vous pouvez exécuter la version MSOpenTech de redis-server.exe à partir des outils de ligne de commande Redis sur votre ordinateur local et vous y connecter pour obtenir un résultat similaire à celui d’un émulateur de cache local, comme illustré dans l’exemple suivant :There is no local emulator for Azure Cache for Redis, but you can run the MSOpenTech version of redis-server.exe from the Redis command-line tools on your local machine and connect to it to get a similar experience to a local cache emulator, as shown in the following example:

private static Lazy<ConnectionMultiplexer>
      lazyConnection = new Lazy<ConnectionMultiplexer>
    (() =>
    {
        // Connect to a locally running instance of Redis to simulate a local cache emulator experience.
        return ConnectionMultiplexer.Connect("127.0.0.1:6379");
    });

    public static ConnectionMultiplexer Connection
    {
        get
        {
            return lazyConnection.Value;
        }
    }

Vous pouvez éventuellement configurer un fichier redis.conf correspondant mieux aux paramètres de cache par défaut de votre Cache Azure pour Redis en ligne le cas échéant.You can optionally configure a redis.conf file to more closely match the default cache settings for your online Azure Cache for Redis if desired.

Comment exécuter des commandes Redis ?How can I run Redis commands?

Vous pouvez utiliser les commandes répertoriées dans Commandes Redis, à l’exception de celles répertoriées dans Commandes Redis non prises en charge dans le Cache Azure pour Redis.You can use any of the commands listed at Redis commands except for the commands listed at Redis commands not supported in Azure Cache for Redis. Vous disposez de plusieurs options pour exécuter des commandes Redis.You have several options to run Redis commands.

  • Si vous avez un cache Standard ou Premium, vous pouvez exécuter les commandes Redis à l’aide de la console Redis.If you have a Standard or Premium cache, you can run Redis commands using the Redis Console. Elle offre un moyen sécurisé d'exécuter des commandes Redis dans le portail Azure.The Redis console provides a secure way to run Redis commands in the Azure portal.
  • Vous pouvez aussi utiliser les outils de ligne de commande Redis.You can also use the Redis command-line tools. Pour ce faire, effectuez les étapes suivantes :To use them, perform the following steps:
  • Téléchargez les outils de ligne de commande Redis.Download the Redis command-line tools.
  • Connectez-vous au cache avec redis-cli.exe.Connect to the cache using redis-cli.exe. Transmettez le point de terminaison du cache à l’aide du commutateur -h et la clé à l’aide de -a, comme indiqué dans l’exemple suivant :Pass in the cache endpoint using the -h switch and the key using -a as shown in the following example:
  • redis-cli -h <Azure Cache for Redis name>.redis.cache.windows.net -a <key>

Notes

Les outils en ligne de commande Redis ne fonctionnent pas avec le port SSL, mais vous pouvez utiliser un utilitaire comme stunnel pour connecter de manière sécurisée les outils au port SSL en suivant les instructions données dans l’article Utiliser l’outil en ligne de commande Redis avec le Cache Azure pour Redis.The Redis command-line tools do not work with the SSL port, but you can use a utility such as stunnel to securely connect the tools to the SSL port by following the directions in the How to use the Redis command-line tool with Azure Cache for Redis article.

Pourquoi est-ce que le Cache Azure pour Redis n’a pas de référence de bibliothèque de classes MSDN comme certains autres services Azure ?Why doesn't Azure Cache for Redis have an MSDN class library reference like some of the other Azure services?

Le cache Microsoft Azure pour Redis se base sur le cache Azure pour Redis open source connu.Microsoft Azure Cache for Redis is based on the popular open-source Azure Cache for Redis. Il est accessible par un large éventail de clients Redis pour de nombreux langages de programmation.It can be accessed by a wide variety of Redis clients for many programming languages. Chaque client possède sa propre API qui effectue des appels à l’instance de Cache Azure pour Redis à l’aide de commandes Redis.Each client has its own API that makes calls to the Azure Cache for Redis instance using Redis commands.

Étant donné que chaque client est différent, il n’y a pas de référence centralisée au sujet des classes sur MSDN. Chaque client a sa propre documentation de référence.Because each client is different, there is not one centralized class reference on MSDN, and each client maintains its own reference documentation. En plus de la documentation de référence, il existe plusieurs didacticiels qui montrent comment débuter avec le Cache Azure pour Redis avec plusieurs langues et clients.In addition to the reference documentation, there are several tutorials showing how to get started with Azure Cache for Redis using different languages and cache clients. Pour accéder à ces tutoriels, consultez Utiliser le cache Azure pour Redis et les articles connexes dans la table des matières.To access these tutorials, see How to use Azure Cache for Redis and it's sibling articles in the table of contents.

Puis-je utiliser le Cache Azure pour Redis comme un cache de session PHP ?Can I use Azure Cache for Redis as a PHP session cache?

Oui, pour utiliser le Cache Azure pour Redis comme un cache de session PHP, pointez la chaîne de connexion vers votre instance de Cache Azure pour Redis dans session.save_path.Yes, to use Azure Cache for Redis as a PHP session cache, specify the connection string to your Azure Cache for Redis instance in session.save_path.

Important

Lorsque vous utilisez le Cache Azure pour Redis comme un cache de session PHP, vous devez coder l’URL de la clé de sécurité utilisée pour se connecter au cache, comme illustré dans l’exemple suivant :When using Azure Cache for Redis as a PHP session cache, you must URL encode the security key used to connect to the cache, as shown in the following example:

session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";

Si la clé n’est pas codée par URL, vous pouvez recevoir une exception avec un message du type : Failed to parse session.save_pathIf the key is not URL encoded, you may receive an exception with a message like: Failed to parse session.save_path

Pour plus d’informations sur l’utilisation du Cache Azure pour Redis comme un cache de session PHP avec le client PhpRedis, consultez Gestionnaire PHP Session.For more information about using Azure Cache for Redis as a PHP session cache with the PhpRedis client, see PHP Session handler.

Quelles sont les bases de données Redis ?What are Redis databases?

Les bases de données Redis sont tout simplement une séparation logique des données au sein de la même instance Redis.Redis Databases are just a logical separation of data within the same Redis instance. La mémoire cache est partagée entre toutes les bases de données et la consommation réelle de mémoire d’une base de données dépend des clés/valeurs stockées dans cette base de données.The cache memory is shared between all the databases and actual memory consumption of a given database depends on the keys/values stored in that database. Par exemple, un cache C6 dispose de 53 Go de mémoire et un cache P5 de 120 Go de mémoire.For example, a C6 cache has 53 GB of memory, and a P5 has 120 GB. Vous pouvez choisir de placer l’intégralité des 53 Go/120 Go dans une seule base de données, ou vous pouvez les répartir entre plusieurs bases de données.You can choose to put all 53 GB / 120 GB into one database or you can split it up between multiple databases.

Notes

Lorsque vous utilisez un Cache Azure pour Redis Premium avec le clustering activé, seule la base de données 0 est disponible.When using a Premium Azure Cache for Redis with clustering enabled, only database 0 is available. Cette limitation est une limitation Redis intrinsèque et n’est pas spécifique au Cache Azure pour Redis.This limitation is an intrinsic Redis limitation and is not specific to Azure Cache for Redis. Pour en savoir plus, voir, Dois-je apporter des modifications à mon application cliente pour utiliser le clustering ?For more information, see Do I need to make any changes to my client application to use clustering?

Quand dois-je activer le port non-SSL pour la connexion à Redis ?When should I enable the non-SSL port for connecting to Redis?

Le serveur Redis ne prend pas en charge SSL de façon native, contrairement au Cache Azure pour Redis.Redis server does not natively support SSL, but Azure Cache for Redis does. Si vous vous connectez à un Cache Azure pour Redis et que votre client est compatible SSL, par exemple StackExchange.Redis, vous devez utiliser SSL.If you are connecting to Azure Cache for Redis and your client supports SSL, like StackExchange.Redis, then you should use SSL.

Notes

Le port non SSL est désactivé par défaut pour les nouvelles instances Cache Azure pour Redis.The non-SSL port is disabled by default for new Azure Cache for Redis instances. Si votre client ne prend pas en charge SSL, vous devez activer le port non-SSL en suivant les instructions de la section Ports d’accès de l’article Configuration d’un cache dans le Cache Azure pour Redis.If your client does not support SSL, then you must enable the non-SSL port by following the directions in the Access ports section of the Configure a cache in Azure Cache for Redis article.

Des outils Redis tels que redis-cli ne fonctionnent pas avec le port SSL, mais vous pouvez utiliser un utilitaire comme stunnel pour connecter en toute sécurité les outils au port SSL en suivant les instructions du billet de blog Annonce du fournisseur d’état de session ASP.NET pour la version préliminaire de Redis.Redis tools such as redis-cli do not work with the SSL port, but you can use a utility such as stunnel to securely connect the tools to the SSL port by following the directions in the Announcing ASP.NET Session State Provider for Redis Preview Release blog post.

Pour obtenir des instructions sur le téléchargement des outils Redis, consultez la section Comment exécuter des commandes Redis ? .For instructions on downloading the Redis tools, see the How can I run Redis commands? section.

Quelles sont les meilleures pratiques en matière de production ?What are some production best practices?

Meilleures pratiques StackExchange.RedisStackExchange.Redis best practices

  • Définissez AbortConnect sur false, puis laissez le ConnectionMultiplexer se reconnecter automatiquement.Set AbortConnect to false, then let the ConnectionMultiplexer reconnect automatically. Vous trouverez plus d’informations ici.See here for details.
  • Réutilisez le ConnectionMultiplexer, ne créez pas de nouvelle instance pour chaque requête.Reuse the ConnectionMultiplexer - do not create a new one for each request. Le modèle Lazy<ConnectionMultiplexer> illustré ici est recommandé.The Lazy<ConnectionMultiplexer> pattern shown here is recommended.
  • Redis fonctionne de manière optimale avec des valeurs plus petites et il est donc recommandé de fractionner les données plus volumineuses dans plusieurs clés.Redis works best with smaller values, so consider chopping up bigger data into multiple keys. Dans cette discussion Redis, la valeur 100 Ko est considérée comme volumineuse.In this Redis discussion, 100 kb is considered large. Listez cet article illustrant un exemple de problème pouvant être provoqué par des valeurs élevées.Read this article for an example problem that can be caused by large values.
  • Configurez vos paramètres ThreadPool pour éviter les délais d’attente.Configure your ThreadPool settings to avoid timeouts.
  • Utilisez au moins la valeur par défaut connectTimeout de 5 secondes.Use at least the default connectTimeout of 5 seconds. Cet intervalle laisse à StackExchange.Redis suffisamment de temps pour rétablir la connexion en cas de blocage du réseau.This interval gives StackExchange.Redis sufficient time to re-establish the connection in the event of a network blip.
  • Gardez à l’esprit les coûts de performances associés aux différentes opérations que vous exécutez.Be aware of the performance costs associated with different operations you are running. Par exemple, la commande KEYS est une opération O(n) et doit être évitée.For instance, the KEYS command is an O(n) operation and should be avoided. Le site redis.io fournit plus d’informations sur la complexité de temps de chaque opération prise en charge.The redis.io site has details around the time complexity for each operation that it supports. Cliquez sur chaque commande pour afficher la complexité de chaque opération.Click each command to see the complexity for each operation.

Configuration et conceptsConfiguration and concepts

  • Utilisez le niveau Standard ou Premium pour les systèmes de production.Use Standard or Premium Tier for Production systems. Le niveau De base est un système à nœud unique, sans réplication des données ni contrat SLA.The Basic Tier is a single node system with no data replication and no SLA. En outre, utilisez au moins un cache C1.Also, use at least a C1 cache. Les caches C0 s’appliquent généralement aux scénarios de développement/test simples.C0 caches are typically used for simple dev/test scenarios.
  • N’oubliez pas que Redis est un magasin de données In-Memory .Remember that Redis is an In-Memory data store. Lisez cet article pour identifier les scénarios où une perte de données peut se produire.Read this article so that you are aware of scenarios where data loss can occur.
  • Développez votre système de telle sorte qu’il puisse gérer les problèmes de connexion liés à une mise à jour corrective et à un basculement.Develop your system such that it can handle connection blips due to patching and failover.

Tests de performancesPerformance testing

  • Commencez par utiliser redis-benchmark.exe pour avoir une idée du débit possible avant d’effectuer vos propres tests de performances.Start by using redis-benchmark.exe to get a feel for possible throughput before writing your own perf tests. redis-benchmark ne prenant pas en charge SSL, vous devez activer le port non SSL via le portail Azure avant d’exécuter le test.Because redis-benchmark does not support SSL, you must enable the Non-SSL port through the Azure portal before you run the test. Par exemple, consultez la rubrique Comment puis-je évaluer et tester les performances de mon cache ?For examples, see How can I benchmark and test the performance of my cache?
  • La machine virtuelle cliente utilisée pour le test doit figurer dans la même région que votre instance de Cache Azure pour Redis.The client VM used for testing should be in the same region as your Azure Cache for Redis instance.
  • Nous recommandons d’utiliser des machines virtuelles Dv2 pour votre client car elles disposent d’un matériel plus performant et fournissent de meilleurs résultats.We recommend using Dv2 VM Series for your client as they have better hardware and should give the best results.
  • Assurez-vous que la machine virtuelle cliente que vous choisissez possède au moins autant de puissance de calcul et de bande passante que le cache que vous testez.Make sure your client VM you choose has at least as much computing and bandwidth capability as the cache you are testing.
  • Activez VRSS sur la machine cliente si vous êtes sous Windows.Enable VRSS on the client machine if you are on Windows. Vous trouverez plus d’informations ici.See here for details.
  • Les instances Redis de niveau Premium offriront une meilleure latence de réseau et un débit supérieur car elles s’exécutent sur un matériel plus performant en termes de processeur et de réseau.Premium tier Redis instances have better network latency and throughput because they are running on better hardware for both CPU and Network.

Quels sont les points à prendre en compte en ce qui concerne les commandes Redis les plus courantes ?What are some of the considerations when using common Redis commands?

  • Évitez d’utiliser certaines commandes Redis qui durent longtemps, sauf si vous comprenez pleinement leur impact.Avoid using certain Redis commands that take a long time to complete, unless you fully understand the impact of these commands. Par exemple, n’exécutez pas la commande KEYS en production.For example, do not run the KEYS command in production. Selon le nombre de clés, la commande peut prendre beaucoup de temps pour s’exécuter.Depending on the number of keys, it could take a long time to return. Redis est un serveur à thread unique qui traite une commande à la fois.Redis is a single-threaded server and it processes commands one at a time. Si vous avez émis d’autres commandes après KEYS, elles ne sont pas traitées tant que Redis traite la commande KEYS.If you have other commands issued after KEYS, they will not be processed until Redis processes the KEYS command. Le site redis.io fournit plus d’informations sur la complexité de temps de chaque opération prise en charge.The redis.io site has details around the time complexity for each operation that it supports. Cliquez sur chaque commande pour afficher la complexité de chaque opération.Click each command to see the complexity for each operation.
  • Taille des clés : dois-je utiliser des petites clés/valeurs ou de grandes clés/valeurs ?Key sizes - should I use small key/values or large key/values? Cela dépend du scénario.It depends on the scenario. Si votre scénario nécessite des clés plus longues, vous pouvez ajuster les valeurs ConnectionTimeout, puis les réessayer avant d’adapter votre logique de nouvelle tentative.If your scenario requires larger keys, you can adjust the ConnectionTimeout, then retry values and adjust your retry logic. Du point de vue du serveur Redis, les valeurs les plus petites donnent de meilleures performances.From a Redis server perspective, smaller values give better performance.
  • Cela ne veut pas dire que vous ne pouvez pas stocker de plus grandes valeurs dans Redis. Vous devez simplement être au fait de ces informations.These considerations don't mean that you can't store larger values in Redis; you must be aware of the following considerations. Les temps de latence seront plus élevés.Latencies will be higher. Si vous avez un jeu de données plus grand et un autre plus petit, vous pouvez utiliser plusieurs instances ConnectionMultiplexer, chacune configurée avec un ensemble différent de valeurs de délai d’expiration et de nouvelles tentatives, comme décrit dans la section précédente En quoi consistent les options de configuration StackExchange.Redis.If you have one set of data that is larger and one that is smaller, you can use multiple ConnectionMultiplexer instances, each configured with a different set of timeout and retry values, as described in the previous What do the StackExchange.Redis configuration options do section.

Comment puis-je évaluer et tester les performances de mon cache ?How can I benchmark and test the performance of my cache?

  • Activez les diagnostics du cache afin de pouvoir surveiller l’intégrité de votre cache.Enable cache diagnostics so you can monitor the health of your cache. Vous pouvez afficher les mesures dans le portail Azure, et les télécharger et les analyser à l’aide des outils de votre choix.You can view the metrics in the Azure portal and you can also download and review them using the tools of your choice.
  • Vous pouvez utiliser redis-benchmark.exe pour tester la charge de votre serveur Redis.You can use redis-benchmark.exe to load test your Redis server.
  • Assurez-vous que le client de test de la charge et le Cache Azure pour Redis se trouvent dans la même région.Ensure that the load testing client and the Azure Cache for Redis are in the same region.
  • Utilisez redis-cli.exe et surveillez le cache à l’aide de la commande INFO.Use redis-cli.exe and monitor the cache using the INFO command.
  • Si votre charge provoque une fragmentation élevée de la mémoire, vous devez augmenter la taille de votre cache.If your load is causing high memory fragmentation, you should scale up to a larger cache size.
  • Pour obtenir des instructions sur le téléchargement des outils Redis, consultez la section Comment exécuter des commandes Redis ? .For instructions on downloading the Redis tools, see the How can I run Redis commands? section.

Les commandes suivantes fournissent un exemple d'utilisation de redis-benchmark.exe.The following commands provide an example of using redis-benchmark.exe. Pour obtenir des résultats précis, exécutez ces commandes à partir d’une machine virtuelle située dans la même région que votre cache.For accurate results, run these commands from a VM in the same region as your cache.

  • Test de requêtes SET en pipeline à l’aide d’une charge utile de 1 koTest Pipelined SET requests using a 1k payload

    redis-benchmark.exe -h **yourcache**.redis.cache.windows.net -a **yourAccesskey** -t SET -n 1000000 -d 1024 -P 50

  • Testez des requêtes GET en pipeline à l’aide d’une charge utile de 1 ko.Test Pipelined GET requests using a 1k payload. REMARQUE : Exécutez le jeu SET indiqué ci-dessus pour remplir le cacheNOTE: Run the SET test shown above first to populate cache

    redis-benchmark.exe -h **yourcache**.redis.cache.windows.net -a **yourAccesskey** -t GET -n 1000000 -d 1024 -P 50

Informations importantes sur la croissance du pool de threadsImportant details about ThreadPool growth

Le pool de threads CLR comporte deux types de threads : « Worker » et « I/O Completion Port » (IOCP).The CLR ThreadPool has two types of threads - "Worker" and "I/O Completion Port" (IOCP) threads.

  • Les threads de travail sont utilisés notamment pour le traitement des méthodes Task.Run(…) ou ThreadPool.QueueUserWorkItem(…).Worker threads are used for things like processing the Task.Run(…), or ThreadPool.QueueUserWorkItem(…) methods. Ces threads sont également utilisés par différents composants dans le CLR lorsqu’une tâche doit être effectuée sur un thread en arrière-plan.These threads are also used by various components in the CLR when work needs to happen on a background thread.
  • Les threads IOCP sont utilisés dans le cas d’E/S asynchrones, comme la lecture à partir du réseau.IOCP threads are used when asynchronous IO happens, such as when reading from the network.

Le pool de threads fournit de nouveaux threads Worker ou IOCP à la demande (sans aucune limitation) jusqu’à ce qu’il atteigne le paramètre « Minimum » pour chaque type de thread.The thread pool provides new worker threads or I/O completion threads on demand (without any throttling) until it reaches the "Minimum" setting for each type of thread. Par défaut, le nombre minimal de threads est défini sur le nombre de processeurs d’un système.By default, the minimum number of threads is set to the number of processors on a system.

Une fois que le nombre de threads existants (occupés) atteint le nombre « minimal » de threads, le pool de threads limite le taux d’injection des nouveaux threads à hauteur d’un thread toutes les 500 millisecondes.Once the number of existing (busy) threads hits the "minimum" number of threads, the ThreadPool will throttle the rate at which it injects new threads to one thread per 500 milliseconds. Généralement, si votre système reçoit une rafale de tâches nécessitant un thread IOCP, la tâche sera traitée rapidement.Typically, if your system gets a burst of work needing an IOCP thread, it will process that work quickly. Toutefois, si le nombre de tâches est supérieur au paramètre « Minimum » configuré, le traitement de certaines tâches sera retardé car le ThreadPool attendra l’une ou l’autre des conditions suivantes :However, if the burst of work is more than the configured "Minimum" setting, there will be some delay in processing some of the work as the ThreadPool waits for one of two things to happen.

  1. Un thread existant se libère pour traiter la tâche.An existing thread becomes free to process the work.
  2. Aucun thread existant ne se libère pendant 500 ms, auquel cas un nouveau thread est créé.No existing thread becomes free for 500 ms, so a new thread is created.

En fait, cela signifie que lorsque le nombre de threads occupés est supérieur au nombre minimum de threads, vous devrez probablement subir un délai de 500 ms avant que le trafic réseau ne soit traité par l’application.Basically, it means that when the number of Busy threads is greater than Min threads, you are likely paying a 500-ms delay before network traffic is processed by the application. Il est également important de noter que lorsqu’un thread existant reste inactif pendant plus de 15 secondes (d’après mes souvenirs), il sera nettoyé et ce cycle de croissance et de diminution peut se répéter.Also, it is important to note that when an existing thread stays idle for longer than 15 seconds (based on what I remember), it will be cleaned up and this cycle of growth and shrinkage can repeat.

Observons cet exemple de message d’erreur de StackExchange.Redis (build 1.0.450 ou version ultérieure) ; vous voyez que les statistiques de pool de threads s’affichent désormais (voir les détails IOCP et WORKER ci-dessous).If we look at an example error message from StackExchange.Redis (build 1.0.450 or later), you will see that it now prints ThreadPool statistics (see IOCP and WORKER details below).

System.TimeoutException: Timeout performing GET MyKey, inst: 2, mgr: Inactive,
queue: 6, qu: 0, qs: 6, qc: 0, wr: 0, wq: 0, in: 0, ar: 0,
IOCP: (Busy=6,Free=994,Min=4,Max=1000),
WORKER: (Busy=3,Free=997,Min=4,Max=1000)

Dans l’exemple précédent, vous pouvez voir que six threads sont occupés pour le thread IOCP et que le système est configuré pour autoriser au minimum quatre threads.In the previous example, you can see that for IOCP thread there are six busy threads and the system is configured to allow four minimum threads. Dans ce cas, le client subirait probablement deux retards de 500 ms car 6 > 4.In this case, the client would have likely seen two 500-ms delays, because 6 > 4.

Notez que StackExchange.Redis peut atteindre les délais d’expiration si la croissance des threads IOCP ou WORKER est limitée.Note that StackExchange.Redis can hit timeouts if growth of either IOCP or WORKER threads gets throttled.

RecommandationRecommendation

Par conséquent, nous recommandons fortement aux clients de définir la valeur de configuration minimale pour les threads IOCP et WORKER sur une valeur supérieure à la valeur par défaut.Given this information, we strongly recommend that customers set the minimum configuration value for IOCP and WORKER threads to something larger than the default value. Il est impossible de recommander une valeur unique car une valeur parfaitement adaptée à une application sera probablement trop élevée ou trop faible pour une autre application.We can't give one-size-fits-all guidance on what this value should be because the right value for one application will likely be too high or low for another application. Ce paramètre peut également avoir un impact sur les performances d’autres composants d’applications complexes, ce qui signifie que chaque client doit ajuster ce paramètre en fonction de ses besoins spécifiques.This setting can also impact the performance of other parts of complicated applications, so each customer needs to fine-tune this setting to their specific needs. Le mieux est de commencer à 200 ou 300, puis de tester et d’ajuster cette valeur en fonction des besoins.A good starting place is 200 or 300, then test and tweak as needed.

Configuration de ce paramètre :How to configure this setting:

private readonly int minThreads = 200;
void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    ThreadPool.SetMinThreads(minThreads, minThreads);
}

Notes

La valeur spécifiée par cette méthode est un paramètre global qui affecte tout le domaine d’application.The value specified by this method is a global setting, affecting the whole AppDomain. Par exemple, si vous avez une machine à 4 cœurs et que vous souhaitez définir minWorkerThreads et minIoThreads à 50 par processeur pendant l’exécution, vous utiliserez ThreadPool.SetMinThreads(200, 200) .For example, if you have a 4-core machine and want to set minWorkerThreads and minIoThreads to 50 per CPU during run-time, you would use ThreadPool.SetMinThreads(200, 200).

  • Il est également possible de spécifier le paramètre minimal de threads à l’aide du paramètre de configuration minIoThreads ou minWorkerThreads sous l’élément de configuration <processModel> dans Machine.config, généralement situé dans %SystemRoot%\Microsoft.NET\Framework\[versionNumber]\CONFIG\.It is also possible to specify the minimum threads setting by using the minIoThreads or minWorkerThreads configuration setting under the <processModel> configuration element in Machine.config, usually located at %SystemRoot%\Microsoft.NET\Framework\[versionNumber]\CONFIG\. Définir le nombre minimal de threads de cette manière n’est généralement pas recommandé, car il s’agit d’un paramètre de l’échelle du système.Setting the number of minimum threads in this way is generally not recommended, because it is a System-wide setting.

    Notes

    La valeur spécifiée dans cet élément de configuration est un paramètre applicable par cœur.The value specified in this configuration element is a per-core setting. Par exemple, si vous utilisez un ordinateur à 4 cœurs et que vous souhaitez définir votre paramètre minIoThreads sur 200 au moment de l’exécution, vous utilisez <processModel minIoThreads="50"/>.For example, if you have a 4-core machine and want your minIoThreads setting to be 200 at runtime, you would use <processModel minIoThreads="50"/>.

Activation de Garbage Collection sur le serveur pour obtenir un meilleur début sur le client lors de l'utilisation de StackExchange.RedisEnable server GC to get more throughput on the client when using StackExchange.Redis

L'activation de Garbage Collection sur le serveur peut optimiser le client, fournir des performances et un débit optimaux lors de l'utilisation de StackExchange.Redis.Enabling server GC can optimize the client and provide better performance and throughput when using StackExchange.Redis. Pour plus d'informations sur Garbage Collection sur le serveur et son activation, consultez les articles suivants :For more information on server GC and how to enable it, see the following articles:

Considérations relatives aux performances de connexionPerformance considerations around connections

Chaque niveau tarifaire est associé à des limites spécifiques concernant les connexions clientes, la mémoire et la bande passante.Each pricing tier has different limits for client connections, memory, and bandwidth. Si chaque taille de cache autorise jusqu’à un certain nombre de connexions, chaque connexion à Redis entraîne une surcharge.While each size of cache allows up to a certain number of connections, each connection to Redis has overhead associated with it. Un exemple d’une telle surcharge est l’utilisation du processeur et de la mémoire à la suite d’un chiffrement TLS/SSL.An example of such overhead would be CPU and memory usage as a result of TLS/SSL encryption. La limite maximale de connexions pour une taille de cache donnée suppose un cache peu chargé.The maximum connection limit for a given cache size assumes a lightly loaded cache. Si la charge de la surcharge de connexion plus la charge des opérations de client dépasse la capacité du système, le cache peut rencontrer des problèmes de capacité, même si vous n’avez pas dépassé la limite de connexion pour la taille de cache actuelle.If load from connection overhead plus load from client operations exceeds capacity for the system, the cache can experience capacity issues even if you have not exceeded the connection limit for the current cache size.

Pour plus d’informations sur les différentes limites de connexion imposées sur chaque niveau, consultez la page Tarification du Cache Azure pour Redis.For more information about the different connections limits for each tier, see Azure Cache for Redis pricing. Pour plus d’informations sur les connexions et les autres configurations par défaut, consultez la page Configuration du serveur Redis par défaut.For more information about connections and other default configurations, see Default Redis server configuration.

Comment surveiller l’intégrité et les performances de mon cache ?How do I monitor the health and performance of my cache?

Les instances du Cache Microsoft Azure pour Redis peuvent être surveillées dans le portail Azure.Microsoft Azure Cache for Redis instances can be monitored in the Azure portal. Vous pouvez afficher les mesures, épingler des graphiques de mesure au Tableau d’accueil, personnaliser la plage de date et d’heure des graphiques de surveillance, ajouter et supprimer des mesures dans les graphiques et définir des alertes lorsque certaines conditions sont remplies.You can view metrics, pin metrics charts to the Startboard, customize the date and time range of monitoring charts, add and remove metrics from the charts, and set alerts when certain conditions are met. Pour plus d’informations, voir Surveillance du Cache Azure pour Redis.For more information, see Monitor Azure Cache for Redis.

Le menu Ressource du Cache Azure pour Redis contient également plusieurs outils permettant de surveiller et dépanner vos caches.The Azure Cache for Redis Resource menu also contains several tools for monitoring and troubleshooting your caches.

  • Diagnostiquer et résoudre les problèmes fournit des informations sur les problèmes courants et les stratégies de résolutions associées.Diagnose and solve problems provides information about common issues and strategies for resolving them.
  • Resource Health surveille vos ressources et vous indique si elles s’exécutent comme prévu.Resource health watches your resource and tells you if it's running as expected. Pour plus d’informations sur le service Azure Resource Health, consultez Vue d’ensemble d’Azure Resource Health.For more information about the Azure Resource health service, see Azure Resource health overview.
  • Nouvelle demande de support fournit des options pour ouvrir une demande de support pour votre cache.New support request provides options to open a support request for your cache.

Ces outils vous permettent de surveiller l’intégrité de vos instances Cache Azure pour Redis et vous aident à gérer vos applications de mise en cache.These tools enable you to monitor the health of your Azure Cache for Redis instances and help you manage your caching applications. Pour plus d’informations, consultez la section « Paramètres de support et dépannage » de l’article Configuration de Cache Azure pour Redis.For more information, see the "Support & troubleshooting settings" section of How to configure Azure Cache for Redis.

Pourquoi est-ce que je reçois des erreurs d’expiration du délai ?Why am I seeing timeouts?

L’expiration du délai se produit dans le client que vous utilisez pour communiquer avec Redis.Timeouts happen in the client that you use to talk to Redis. Lorsqu’une commande est envoyée au serveur Redis, elle est placée dans la file d’attente, puis le serveur Redis la récupère et l’exécute.When a command is sent to the Redis server, the command is queued up and Redis server eventually picks up the command and executes it. Toutefois, le client peut expirer pendant ce processus. Si c’est le cas, une exception est levée côté appelant.However the client can time out during this process and if it does an exception is raised on the calling side. Pour plus d’informations sur la résolution des problèmes de délai d’attente, voir Résolution des problèmes côté client et Exceptions au délai d’expiration de StackExchange.Redis.For more information on troubleshooting timeout issues, see Client-side troubleshooting and StackExchange.Redis timeout exceptions.

Pourquoi mon client a-t-il été déconnecté du cache ?Why was my client disconnected from the cache?

Voici quelques raisons pour lesquelles la déconnexion du cache peut se produire :The following are some common reason for a cache disconnect.

  • Causes côté clientClient-side causes
    • L’application cliente a été redéployée.The client application was redeployed.
    • L’application cliente a effectué une opération de mise à l’échelle.The client application performed a scaling operation.
      • Dans le cas de Cloud Services ou de Web Apps, cela peut être dû à la mise à l’échelle automatique.In the case of Cloud Services or Web Apps, this may be due to autoscaling.
    • La couche réseau côté client a été modifiée.The networking layer on the client side changed.
    • Des erreurs temporaires se sont produites dans le client ou dans les nœuds du réseau entre le client et le serveur.Transient errors occurred in the client or in the network nodes between the client and the server.
    • Les limites de seuil de bande passante ont été atteintes.The bandwidth threshold limits were reached.
    • Les opérations côté processeur ont pris trop de temps.CPU bound operations took too long to complete.
  • Causes côté serveurServer-side causes
    • Dans l’offre de cache Standard, le service Cache Azure pour Redis a créé un basculement du nœud principal vers le nœud secondaire.On the standard cache offering, the Azure Cache for Redis service initiated a fail-over from the primary node to the secondary node.
    • Azure appliquait un correctif à l’instance où le cache était déployéAzure was patching the instance where the cache was deployed
      • Il peut s’agir de mises à jour du serveur Redis ou d’une maintenance générale de la machine virtuelle.This can be for Redis server updates or general VM maintenance.

Quelle est l'offre Azure Cache qui me convient ?Which Azure Cache offering is right for me?

Important

Conformément à ce qui a été annoncé l’année dernière, le service de cache géré Azure et le service In-Role Cache Azure ont été supprimés le 30 novembre 2016.As per last year's announcement, Azure Managed Cache Service and Azure In-Role Cache service have been retired on November 30, 2016. Nous vous recommandons d’utiliser Cache Azure pour Redis.Our recommendation is to use Azure Cache for Redis. Pour obtenir des informations sur la migration, consultez Migrer un Service de cache géré vers le Cache Azure pour Redis.For information on migrating, see Migrate from Managed Cache Service to Azure Cache for Redis.

Cache Azure pour RedisAzure Cache for Redis

Le Cache Azure pour Redis est en disponibilité générale dans des tailles pouvant aller jusqu’à 120 Go et son contrat SLA atteint 99,9 % de disponibilité.Azure Cache for Redis is Generally Available in sizes up to 120 GB and has an availability SLA of 99.9%. Le nouveau niveau Premium propose des tailles pouvant aller jusqu’à 1,2 To et prend en charge le clustering, les réseaux virtuels et la persistance, avec un contrat SLA de 99,9 %.The new premium tier offers sizes up to 1.2 TB and support for clustering, VNET, and persistence, with a 99.9% SLA.

Le Cache Azure pour Redis permet aux clients d’utiliser un Cache Azure pour Redis sécurisé et dédié géré par Microsoft.Azure Cache for Redis gives customers the ability to use a secure, dedicated Azure Cache for Redis, managed by Microsoft. Avec cette offre, vous pouvez exploiter toutes les fonctionnalités et l’écosystème fournis par Redis, ainsi que la fiabilité des services d’hébergement et de surveillance Microsoft.With this offer, you get to leverage the rich feature set and ecosystem provided by Redis, and reliable hosting and monitoring from Microsoft.

À la différence des caches classiques qui traitent uniquement des paires clé-valeur, Redis est réputé pour ses types de données hautement performants.Unlike traditional caches that deal only with key-value pairs, Redis is popular for its highly performant data types. Redis prend également en charge l’exécution d’opérations atomiques sur ces types, comme : l’ajout à une chaîne, l’incrémentation de la valeur d’un hachage, la transmission de type push vers une liste, le calcul d’une intersection, union et différence ensemblistes ou l’obtention du membre dont le classement est le plus élevé dans un ensemble trié.Redis also supports running atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set. Parmi les autres fonctionnalités, citons notamment la prise en charge des transactions, pub/sub, la création de scripts Lua, les clés d’une durée de vie limitée et les paramètres de configuration permettant à Redis de se comporter davantage comme un cache classique.Other features include support for transactions, pub/sub, Lua scripting, keys with a limited time-to-live, and configuration settings to make Redis behave more like a traditional cache.

Un autre aspect clé du succès de Redis est son écosystème open source intègre et vif construit tout autour.Another key aspect to Redis success is the healthy, vibrant open- source ecosystem built around it. Ce succès se reflète dans la diversité des clients Redis disponibles dans plusieurs langues.This is reflected in the diverse set of Redis clients available across multiple languages. Cet écosystème et un large éventail de clients permettent au Cache Azure pour Redis d’être utilisé par pratiquement n’importe quelle charge de travail dans Azure.This ecosystem and wide range of clients allow Azure Cache for Redis to be used by nearly any workload you would build inside of Azure.

Pour plus d’informations sur la prise en main du Cache Azure pour Redis, voir Utilisation du Cache Azure pour Redis et Documentation Cache Azure pour Redis.For more information about getting started with Azure Cache for Redis, see How to Use Azure Cache for Redis and Azure Cache for Redis documentation.

Service de cache géréManaged Cache service

Le service de cache géré a été supprimé le 30 novembre 2016.Managed Cache service was retired November 30, 2016.

Pour consulter la documentation archivée, voir Documentation archivée du service de cache géré.To view archived documentation, see Archived Managed Cache Service Documentation.

In-Role CacheIn-Role Cache

In-Role Cache a été supprimé le 30 novembre 2016.In-Role Cache was retired November 30, 2016.

Pour consulter la documentation archivée, voir Documentation archivée du service In-Role Cache.To view archived documentation, see Archived In-Role Cache Documentation.