Se connecter à une instance Redis

Cette page explique comment se connecter à une instance Redis à l'aide de Compute Engine et Google Kubernetes Engine. Il fournit également des instructions pour tester les commandes Redis de base avec Telnet.

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 instance de VM Compute Engine située dans le même projet, la même région et le même réseau que celle-ci.

  1. Si vous ne disposez pas encore d'une VM Compute Engine dans le même projet, la même région et le même réseau que votre instance Redis, créez-en une et connectez-vous à celle-ci en suivant le guide Démarrage rapide avec 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 les informations suivantes :

    PING
    

    Résultat :

    PONG
    

    Saisissez les informations suivantes :

    SET HELLO WORLD
    

    Résultat :

    +OK
    

    Saisissez les informations suivantes :

    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 instance de VM Compute Engine située dans le même projet, la même région et le même réseau que celle-ci.

  1. Si vous ne disposez pas déjà d'une VM Compute Engine dans le même projet, la même région et le même réseau 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-server
    
  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 ne soient facturés sur votre compte Cloud Billing.

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 déjà d'une VM Compute Engine dans le même projet, la même région et le même réseau 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-server
    
  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 avec 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 ne soient facturés sur votre compte Cloud Billing.

Se connecter en toute sécurité à une instance Redis à l'aide de Stunnel et de 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 sur laquelle le chiffrement en transit est activé, créez-en une en suivant les instructions de la section Créer une instance Redis avec le chiffrement en transit.

  2. Si vous ne disposez pas déjà d'une VM Compute Engine dans la même région, le même projet et le même réseau que l'instance Redis de l'étape précédente, créez-en une et connectez-vous en suivant les instructions ci-dessous : Guide de démarrage rapide avec 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 et enregistrez 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
      
    5. Redémarrez Stunnel en exécutant les commandes suivantes :

      sudo stunnel /etc/stunnel/redis-client.conf
      
      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
    

    Result:

    PONG
    

Se connecter depuis une machine locale avec transfert de port

Lors de la phase de 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 NAME --machine-type=f1-micro --zone=ZONE
    

    Où :

    • NAME est le nom que vous avez choisi pour la VM Compute Engine.
    • ZONE est la zone dans laquelle vous souhaitez provisionner la VM et doit se trouver dans la même région que votre instance Redis.

    Cette commande crée une VM Compute Engine avec le type de machine f1-micro pour plus de rentabilité. 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 transfère 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 doit renvoyer la réponse suivante:

    PONG
    

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

  5. Le tunnel SSH reste ouvert tant que vous laissez la fenêtre du terminal ouverte et que la connexion au tunnel SSH est opérationnelle.

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

Vous pouvez vous connecter aux instances Redis à partir de clusters Google Kubernetes Engine situés dans la même région et utilisant le même réseau que votre instance.

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

  1. Accédez à la page GKE dans Cloud Console.
    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 dans la même zone et la même région que votre instance Redis avec les alias d'adresses IP activés. Pour savoir comment créer un cluster avec les alias d'adresses IP activés, 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 alias d'adresses IP et sur la création d'un cluster 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 n'en possédez pas encore, créez-en un dans la même zone et la même région que votre instance Redis, en activant les alias d'adresses IP. Pour savoir comment créer un cluster avec les alias d'adresses IP activés, 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 alias d'adresses IP et sur la création d'un cluster 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 :