Se connecter à une instance Redis

Cette page explique comment vous connecter à votre instance Redis à l'aide de Telnet et de redis-cli. De plus, cette page explique comment se connecter lorsque vous utilisez des fonctionnalités telles que les instances dupliquées avec accès en lecture, AUTH et le chiffrement en transit. Enfin, cette page explique comment se connecter à partir d'un environnement Google Kubernetes Engine.

Pour obtenir la liste des environnements Google Cloud compatibles avec Memorystore pour Redis, consultez la section Environnements compatibles. Certains environnements sans serveur compatibles avec Memorystore nécessitent un connecteur d'accès au VPC sans serveur. Pour en savoir plus, consultez la section Exigences relatives au connecteur d'accès au VPC sans serveur.

Se connecter à une instance Redis depuis une VM Compute Engine à l'aide de Telnet

Vous pouvez vous connecter à une instance Redis depuis n'importe quelle VM Compute Engine utilisant le réseau autorisé de l'instance Redis avec une adresse IP RFC 1918 compatible.

  1. Si vous ne disposez pas encore d'une VM Compute Engine utilisant le même réseau autorisé que votre instance Redis, créez-en une et connectez-vous en suivant les instructions de la page Démarrage rapide à l'aide d'une VM Linux.

  2. Installez telnet à l'aide de apt-get :

    sudo apt-get install telnet
    
  3. Depuis le terminal, connectez telnet à l'adresse IP de l'instance Redis, en remplaçant les variables par les valeurs appropriées.

    telnet instance-ip-address 6379
    

    Si l'opération réussit, la commande renvoie ce résultat :

    Trying instance-ip-address…
    Connected to instance-ip-address
    
  4. Dans la session telnet, renseignez quelques commandes Redis. Exemple :

    Saisissez le code suivant :

    PING
    

    Résultat :

    PONG
    

    Saisissez les informations suivantes :

    SET HELLO WORLD
    

    Résultat :

    +OK
    

    Saisissez le code suivant :

    GET HELLO
    

    Résultat :

    $5
    WORLD
    

Se connecter à une instance Redis depuis une VM Compute Engine à l'aide de redis-cli

Vous pouvez vous connecter à une instance Redis depuis n'importe quelle VM Compute Engine utilisant le réseau autorisé de l'instance Redis avec une adresse IP RFC 1918 compatible.

  1. Si vous ne disposez pas encore d'une VM Compute Engine utilisant le même réseau autorisé que votre instance Redis, créez-en une et connectez-vous en suivant les instructions de la page Créer une instance de VM dans un sous-réseau spécifique.

  2. Installez redis-cli sur la VM Compute Engine en exécutant la commande suivante à partir du terminal SSH de Compute Engine :

    sudo apt-get install redis-tools
    
  3. Exécutez la commande suivante dans le terminal Compute Engine, en remplaçant les variables par les valeurs appropriées.

    redis-cli -h redis-instance-ip-address
    

    Vous êtes maintenant connecté à votre instance Redis à l'aide de redis-cli.

  4. Une fois que vous avez terminé de tester la connexion à l'instance Redis, pensez à supprimer la VM Compute Engine que vous avez utilisée pour vous connecter à l'instance Redis. Vous éviterez ainsi que des frais soient facturés sur votre compte de facturation Cloud.

Se connecter à une instance Redis utilisant AUTH

Cette section explique comment se connecter à une instance Redis pour laquelle la fonctionnalité AUTH est activée.

  1. Si vous ne disposez pas encore d'une VM Compute Engine utilisant le même réseau autorisé que votre instance Redis, créez-en une et connectez-vous en suivant les instructions de la page Démarrage rapide à l'aide d'une VM Linux.

  2. Installez redis-cli sur la VM Compute Engine en exécutant la commande suivante à partir du terminal SSH de Compute Engine :

    sudo apt-get install redis-tools
    
  3. Obtenez la chaîne AUTH de votre instance.

  4. Exécutez la commande suivante pour vous authentifier et vous connecter à votre instance à l'aide de redis-cli, en remplaçant les variables par les valeurs appropriées :

    redis-cli -h instance-ip-address -a auth-string
    

    ou

    redis-cli -h instance-ip-address
    AUTH auth-string
    
  5. Exécutez une commande Redis SET et GET pour vérifier que vous avez établi une connexion authentifiée à votre instance.

  6. Une fois que vous avez terminé de tester la connexion à l'instance Redis, pensez à supprimer la VM Compute Engine que vous avez utilisée pour vous connecter à l'instance Redis. Vous éviterez ainsi que des frais soient facturés sur votre compte de facturation Cloud.

Se connecter à une instance Redis à l'aide du point de terminaison de lecture

Si les instances dupliquées avec accès en lecture sont activées sur votre instance, vous pouvez vous connecter au point de terminaison en lecture en procédant comme suit :

  1. Si vous ne disposez pas encore d'une VM Compute Engine utilisant le même réseau autorisé que votre instance Redis, créez-en une et connectez-vous en suivant les instructions de la page Démarrage rapide à l'aide d'une VM Linux.

  2. Installez telnet à l'aide de apt-get :

    sudo apt-get install telnet
    
  3. Recherchez l'adresse IP du point de terminaison de lecture de votre instance en affichant les informations sur l'instance dupliquée avec accès en lecture de votre instance.

  4. Depuis le terminal, connectez telnet à l'adresse IP du point de terminaison de lecture de l'instance Redis, en remplaçant les variables par les valeurs appropriées.

    telnet read-endpoint-ip 6379
    

    Si l'opération réussit, la commande renvoie ce résultat :

    Trying read-endpoint-ip…
    Connected to read-endpoint-ip
    
  5. Dans la session telnet, renseignez quelques commandes Redis. Exemple :

    Saisissez le code suivant :

    PING
    

    Résultat :

    PONG
    

Se connecter en toute sécurité à une instance Redis à l'aide de Stunnel et Telnet

Cette section fournit un exemple de connexion à une instance Redis pour laquelle le chiffrement en transit est activé à l'aide de Stunnel.

  1. Si vous ne disposez pas déjà d'une instance Redis pour laquelle le chiffrement en transit est activé, créez-en une en suivant la procédure décrite à la section Créer une instance Redis avec chiffrement en transit.

  2. Si vous ne disposez pas encore d'une VM Compute Engine utilisant le même réseau autorisé que l'instance Redis de l'étape précédente, créez-en une et connectez-vous en suivant les instructions de la page Démarrage rapide à l'aide d'une VM Linux.

    1. Installez les outils nécessaires pour ce guide en exécutant les commandes suivantes :

      sudo apt-get install stunnel4
      
      sudo apt-get install telnet
      
  3. Configurez votre VM Compute Engine l'utiliser avec Stunnel :

    1. Créez un fichier dans lequel placer votre autorité de certification, en exécutant la commande suivante :

      sudo vim /tmp/server_ca.pem
      
    2. Affichez la ou les autorités de certification de votre instance Redis en exécutant la commande suivante dans le terminal standard que vous utilisez pour gérer les ressources Google Cloud (et non le terminal Compute Engine) :

      gcloud redis instances describe instance-id --region=region
      

      Il peut y avoir jusqu'à trois CA.

    3. Copiez toutes les autorités de certification visibles, y compris la ligne -----BEGIN CERTIFICATE----- et les lignes -----END CERTIFICATE-----, puis collez ces informations et enregistrez-les dans le fichier server_ca.pem que vous avez créé précédemment.

    4. Créez un fichier dans lequel placer les informations de configuration Stunnel en exécutant la commande suivante :

      sudo vim /etc/stunnel/redis-client.conf
      

      Collez le texte suivant dans le fichier en remplaçant redis-instance-ip par l'adresse IP de l'instance Redis :

      output=/tmp/stunnel.log
      CAfile=/tmp/server_ca.pem
      client=yes
      pid=/var/run/stunnel.pid
      verifyChain=yes
      sslVersion=TLSv1.2
      [redis]
      accept=127.0.0.1:6378
      connect=redis-instance-ip:6378
      

      Démarrez stunnel en exécutant la commande suivante:

      sudo stunnel /etc/stunnel/redis-client.conf
      

      Vérifiez que stunnel est en cours d'exécution:

      ps aux | grep stunnel
      

    5. Redémarrez Stunnel en exécutant les commandes suivantes :

      sudo systemctl restart stunnel4
      
  4. Pour vous connecter à votre instance Redis à l'aide de Telnet, exécutez la commande suivante :

    telnet localhost 6378
    
  5. Dans la session Telnet, pinguez l'instance Redis :

    Saisissez les informations suivantes :

    PING
    

    Résultat :

    PONG
    

Se connecter depuis une machine locale avec transfert de port

Pendant le développement, il peut être utile de vous connecter à votre instance Redis à partir de votre machine locale. Pour ce faire, vous devez créer une instance Compute Engine à utiliser pour le transfert de port vers l'instance Redis.

  1. Créez une instance Compute Engine en exécutant la commande suivante :

    gcloud compute instances create COMPUTE_VM_NAME --machine-type=f1-micro --zone=ZONE
    

    Où :

    • COMPUTE_VM_NAME est le nom que vous avez attribué à la VM Compute Engine.
    • ZONE est la zone dans laquelle vous souhaitez provisionner la VM.

    Cette commande crée une VM Compute Engine avec le type de machine f1-micro pour optimiser son coût. Vous pouvez choisir d'autres types de machines si vous le souhaitez.

  2. Ouvrez un nouveau terminal sur votre machine locale.

  3. Pour créer un tunnel SSH qui assure le transfert de port pour le trafic via la VM Compute Engine, exécutez la commande suivante :

    gcloud compute ssh COMPUTE_VM_NAME --zone=ZONE -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379
    

    Où :

    • COMPUTE_VM_NAME est le nom de la VM Compute Engine.
    • ZONE est la même zone que celle où se trouve la VM Compute Engine.
    • REDIS_INSTANCE_IP_ADDRESS est l'adresse IP de votre instance Redis.
  4. Pour tester la connexion, ouvrez une nouvelle fenêtre de terminal et exécutez la commande suivante :

    redis-cli ping
    

    Si tout fonctionne correctement, le résultat suivant doit s'afficher :

    PONG
    

    Vous êtes maintenant connecté à l'instance Redis et vous pouvez lui envoyer des commandes à l'aide de ce tunnel SSH ouvert. Si vous n'avez pas encore installé l'outil redis-cli, installez-le pour pouvoir exécuter cette commande.

  5. Le tunnel SSH reste ouvert tant que la fenêtre de terminal hébergeant la connexion au tunnel SSH est opérationnelle.

Se connecter à une instance Redis à partir d'un cluster Google Kubernetes Engine

Vous pouvez vous connecter à une instance Redis à partir de clusters Google Kubernetes Engine utilisant le même réseau autorisé que votre instance Redis.

Se connecter à partir d'un pod exécutant une interface système bash

  1. Accédez à la page GKE dans la console Google Cloud.
    GKE
  2. Cliquez sur le cluster GKE à partir duquel vous souhaitez effectuer la connexion. Si vous ne possédez pas encore de cluster, vous devez en créer un avec les adresses IP d'alias activées. Pour savoir comment créer un cluster avec les adresses IP d'alias activées, consultez la page Créer un cluster de VPC natif.
  3. Cliquez sur le bouton Se connecter situé à droite du nom de votre cluster, puis sur le bouton Exécuter dans Cloud Shell dans la fenêtre qui s'affiche.
  4. Configurez l'accès à la ligne de commande kubectlkubectl en exécutant la commande suivante :
    gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_ZONE --project=PROJECT_ID
    • CLUSTER_NAME est le nom du cluster.
    • CLUSTER_ZONE est la zone dans laquelle se trouve le cluster. Elle doit également correspondre à la zone de votre instance Redis.
    • PROJECT_ID est le projet dans lequel le cluster et les instances Redis se trouvent.
    Un message confirmant le succès de l'opération doit s'afficher : kubeconfig generated for CLUSTER_NAME
  5. Si le cluster est de version 1.8 ou supérieure et que les alias d'adresses IP sont activés, ignorez cette étape. Si votre cluster est de version 1.7 ou inférieure, ou si les alias d'adresses IP ne sont pas activés sur votre cluster de version 1.8 ou supérieure, procédez comme suit avant d'essayer de vous connecter à l'instance : Pour en savoir plus sur les adresses IP d'alias et sur la création de clusters avec ce paramètre activé, consultez la page Créer un cluster de VPC natif.
  6. Utilisez la commande suivante pour vous connecter à une interface système bash :
    kubectl run -i --tty busybox --image=busybox -- sh
  7. Connectez telnet sur votre instance Redis à l'aide de l'adresse de l'hôte et du numéro de port :
    telnet HOST-IP PORT
  8. Renseignez une commande Redis de base pour vérifier la connexion. Exemple :
    PING
    +PONG
  9. Pour quitter la connexion telnet, appuyez sur Ctrl + C (ou sur Commande + C sur Mac). Pour quitter l'interface système bash de votre pod, renseignez la commande "return". Si vous avez terminé et n'avez plus besoin de vous connecter à Redis, exécutez la commande suivante à partir du répertoire /k8s-custom-iptables/ :
    ./uninstall.sh

Se connecter à une instance Redis à partir d'un pod Google Kubernetes Engine

Avant de commencer, vous avez besoin d'un cluster GKE. Si vous ne possédez pas encore de cluster, vous devez en créer un avec les adresses IP d'alias activées. Pour savoir comment créer un cluster avec les adresses IP d'alias activées, consultez la page Créer un cluster de VPC natif.

  1. Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell Activer Cloud Shell.
  2. Configurez l'accès à la ligne de commande kubectlkubectl en exécutant la commande suivante :
    gcloud container clusters get-credentials CLUSTER_NAME --zone CLUSTER_ZONE --project PROJECT_ID
    • CLUSTER_NAME est le nom du cluster.
    • CLUSTER_ZONE est la zone dans laquelle se trouve le cluster. Elle doit également correspondre à la zone de votre instance Redis.
    • PROJECT_ID est le projet dans lequel le cluster et les instances Redis se trouvent.
    Un message confirmant le succès de l'opération doit s'afficher : kubeconfig generated for CLUSTER_NAME
  3. Si le cluster est de version 1.8 ou supérieure et que les alias d'adresses IP sont activés, ignorez cette étape. Si votre cluster est de version 1.7 ou inférieure, ou si les alias d'adresses IP ne sont pas activés sur votre cluster de version 1.8 ou supérieure, procédez comme suit avant d'essayer de vous connecter à l'instance : Pour en savoir plus sur les adresses IP d'alias et sur la création de clusters avec ce paramètre activé, consultez la page Créer un cluster de VPC natif.
  4. Exécutez la commande suivante pour démarrer un pod Redis exécutant la commande redis-cli :
    kubectl run -i --tty redisbox --image=gcr.io/google_containers/redis:v1 -- sh
  5. Exécutez une commande redis-cli en remplaçant HOST-IP par l'adresse IP de l'hôte de votre instance Redis :
    redis-cli -h HOST-IP info
  6. Vous pouvez éventuellement exécuter une commande Benchmark Redis en remplaçant à nouveau HOST-IP par l'adresse IP de l'hôte de votre instance Redis :
    redis-benchmark -c 100 -n 100000 -d 1024 -r 100000 -t PING,SET,GET,INCR,LPUSH,RPUSH,LPOP,RPOP,SADD,SPOP,MSET -h HOST-IP -q
  7. Pour quitter le pod Redis, saisissez return. Si vous avez terminé et n'avez plus besoin de vous connecter à Redis, exécutez la commande suivante à partir du répertoire /k8s-custom-iptables/ :
    ./uninstall.sh

Étape suivante

Connectez-vous à l'instance Redis à l'aide d'un exemple d'application s'exécutant sur les environnements suivants :