Modifier

FAQ sur le développement d’Azure Cache pour Redis

Cet article fournit des réponses aux questions courantes sur le développement de solutions pour Azure Cache pour Redis.

Bien démarrer avec le Cache Azure pour Redis

Il existe plusieurs façons de démarrer avec le Cache Azure pour Redis.

Si vous n’avez pas encore de compte Azure, vous pouvez :

  • Ouvrir un compte Azure gratuitement. Vous obtenez des crédits que vous pouvez utiliser pour essayer des services Azure payants. Même après que les crédits sont épuisés, vous pouvez conserver le compte et utiliser les services et fonctionnalités Azure gratuits.
  • Activez les avantages d’abonnement Visual Studio. Votre abonnement MSDN vous donne droit chaque mois à des crédits dont vous pouvez vous servir pour les services Azure payants.

En quoi consistent les options de configuration StackExchange.Redis ?

StackExchange.Redis présente de nombreuses options. Cette section présente certains des paramètres les plus courants. Pour plus d’informations sur les options de StackExchange.Redis, consultez la page Configuration StackExchange.Redis.

ConfigurationOptions Description Recommandation
AbortOnConnectFail Lorsque la valeur est True, la connexion ne peut pas se reconnecter après une panne réseau. La valeur False laisse StackExchange.Redis se reconnecter automatiquement .
ConnectRetry Nombre de tentatives de connexion pendant la connexion initiale. Reportez-vous aux notes suivantes.
ConnectTimeout Délai d’expiration en millisecondes pour les opérations de connexion. Reportez-vous aux notes suivantes.

Généralement, les valeurs par défaut du client sont suffisantes. Vous pouvez affiner les options en fonction de votre charge de travail.

Nouvelle tentatives

  • Pour ConnectRetry et ConnectTimeout, la recommandation générale consiste à effectuer un Fail-fast, puis à réessayer. 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.
  • Laissez StackExchange.Redis se reconnecter automatiquement au lieu de vérifier l’état de la connexion et de vous reconnecter vous-même. Évitez d’utiliser la propriété ConnectionMultiplexer.IsConnected.
  • Effet boule de neige : vous pouvez rencontrer un problème, vous réessayez, mais le problème ne fait qu’empirer à chaque tentative et n’est jamais résolu. Dans ce cas, envisagez d’utiliser un algorithme de nouvelle tentative de backoff exponentiel, comme décrit dans l’article Conseils généraux sur les nouvelles tentatives, publié par le groupe Microsoft Patterns & Practices.

Valeurs de délai d’expiration

  • Estimez votre charge de travail et définissez les valeurs à faire correspondre. Si vous stockez des valeurs élevées, définissez le délai sur une valeur plus élevée.
  • Définissez AbortOnConnectFail sur False et laissez StackExchange.Redis se reconnecter pour vous.
  • Utilisez une seule instance ConnectionMultiplexer de longue durée plutôt que de créer une connexion pour chaque requête. Pour obtenir un exemple de gestion d’une connexion, consultez la classe `RedisConnection`` dans Se connecter au cache avec RedisConnection.
  • Définissez la propriété ConnectionMultiplexer.ClientName sur un nom d’instance unique pour faciliter le diagnostic.
  • Utilisez plusieurs instances ConnectionMultiplexer pour les charges de travail personnalisées.
    • Vous pouvez suivre ce modèle si vous savez que la charge de votre application est variable. Par exemple :
    • Vous pouvez avoir un multiplexeur pour gérer les clés de grande taille.
    • Vous pouvez avoir un multiplexeur pour gérer les clés de petite taille.
    • 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.
    • Définissez la propriété ClientName de chaque multiplexeur pour faciliter le diagnostic.
    • Cette aide permet d’obtenir une latence plus fluide par ConnectionMultiplexer.

Quels clients du Cache Azure pour Redis puis-je utiliser ?

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. Pour obtenir la liste actuelle des clients, consultez la page des clients Redis. Pour obtenir des tutoriels traitant de différents langages et clients, consultez Guide pratique pour utiliser Azure Cache pour Redis.

Récupération du nom d’hôte, des ports et des clés d’accès à partir du portail Azure

Pour connecter votre serveur Azure Cache pour Redis, le client de cache a besoin du nom d’hôte, des ports et d’une clé pour le cache. Certains clients peuvent référencer ces éléments par des noms légèrement différents. Vous pouvez récupérer le nom d’hôte, les ports et les clés d’accès à partir du portail Azure.

  • Pour obtenir les clés d’accès, sélectionnez Authentification dans le menu Ressource. Sélectionnez ensuite l’onglet Clés d’accès.

    Clés du cache Azure pour Redis

  • Pour obtenir le nom d’hôte et les ports de votre cache, sélectionnez Vue d’ensemble dans le menu Ressource. Le nom d’hôte prend la forme <nom DNS>.redis.cache.windows.net.

    Propriétés d’Azure Cache pour Redis

Existe-t-il un émulateur local pour le Cache Azure pour Redis ?

Il n’existe pas d’émulateur local propre à Azure Cache pour Redis. Vous pouvez exécuter la version MSOpenTech de redis-server.exe à partir des outils en ligne de commande Redis sur votre ordinateur local. Ensuite, connectez-vous à celui-ci pour obtenir une expérience similaire à celle d’un émulateur de cache local, comme illustré dans l’exemple suivant :

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 pour votre instance Azure Cache pour Redis en ligne, si vous le souhaitez.

Comment exécuter des commandes Redis ?

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. Vous disposez de plusieurs options pour exécuter des commandes Redis.

Si vous avez un cache Standard ou Premium, vous pouvez exécuter les commandes Redis à l’aide de la console Redis. Elle offre un moyen sécurisé d'exécuter des commandes Redis dans le portail Azure.

Vous pouvez aussi utiliser les outils de ligne de commande Redis. Pour les utiliser, effectuez les étapes suivantes :

  1. Téléchargez les outils de ligne de commande Redis.

  2. Connectez-vous au cache avec redis-cli.exe.

  3. 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 :

    redis-cli -h <Azure Cache for Redis name>.redis.cache.windows.net -a <key>

Remarque

Les outils en ligne de commande Redis ne fonctionnent pas avec le port TLS, mais vous pouvez utiliser un utilitaire comme stunnel pour connecter de façon sécurisée les outils au port TLS en suivant les instructions données dans l’article Utiliser l’outil en ligne de commande Redis avec Azure Cache pour Redis.

Pourquoi Cache Azure pour Redis n’a-t-il pas de référence de bibliothèque de classes MSDN ?

Microsoft Azure Cache pour Redis est dérivé de Redis, un très populaire magasin de données en mémoire open source. Vous pouvez utiliser une grande variété de clients Redis pour de nombreux langages de programmation. Chaque client possède sa propre API qui effectue des appels à l’instance de Cache Azure pour Redis à l’aide de commandes Redis.

Étant donné que chaque client est différent, vous ne pouvez pas trouver de référence de classe centralisée sur MSDN. Chaque client gère sa propre documentation de référence. En plus de la documentation de référence, différents tutoriels montrent comment débuter avec Azure Cache pour Redis en utilisant différents langages et clients de cache. Pour accéder à ces tutoriels, consultez Utiliser le cache Azure pour Redis et les articles connexes dans la table des matières.

Puis-je utiliser le Cache Azure pour Redis comme un cache de session PHP ?

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.

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 :

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

Si la clé n’est pas encodée en URL, vous pouvez recevoir une exception avec un message tel que 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.

Quelles sont les bases de données Redis ?

Les bases de données Redis sont tout simplement une séparation logique des données au sein de la même instance Redis. 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. Par exemple, un cache C6 dispose de 53 Go de mémoire et un cache P5 de 120 Go de mémoire. 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.

Notes

Lorsque vous utilisez un Cache Azure pour Redis Premium avec le clustering activé, seule la base de données 0 est disponible. Cette limitation est une limitation intrinsèque de Redis et n’est pas spécifique à Azure Cache pour Redis.

En savoir plus sur d’autres FAQ sur Azure Cache pour Redis.