Se connecter à une instance Memorystore pour Redis Cluster

Cette page explique comment se connecter à une instance Memorystore pour Redis Cluster.

Assistance client

Memorystore for Redis Cluster ne fournit pas ses propres bibliothèques clientes, mais prend en charge les bibliothèques clientes tierces existantes compatibles avec le protocole Redis. Pour en savoir plus sur les bibliothèques clientes compatibles avec Redis, consultez Clients de connexion compatibles.

Bonnes pratiques concernant le client redis-py

Pour vous connecter à votre instance Memorystore for Redis Cluster à l'aide du client Python redis-py, vous devez ajouter skip_full_coverage_check=True lorsque vous déclarez un cluster Redis :

from rediscluster import RedisCluster
endpoints = [{"host": "IPADDRESS", "port": "6379"}]

rdb = RedisCluster(
    startup_nodes=endpoints,
    skip_full_coverage_check=True, # Required for Memorystore
    decode_responses = True)

print(rdb.set('PYTHON', 'CLUSTER'))
print(rdb.get('PYTHON'))
print(rdb.unlink('PYTHON'))

Autoriser les ports sur votre pare-feu

Si vous n'autorisez pas les ports appropriés sur votre pare-feu, votre cluster peut rencontrer des erreurs de connexion, car le pare-feu peut bloquer les ports utilisés par Memorystore pour Redis Cluster.

Pour tous les points de terminaison Private Service Connect de votre cluster, vous devez autoriser le port TCP 6379, ainsi que les ports TCP 11000 à 13047. Pour en savoir plus, consultez Résoudre les problèmes.

Accès interrégional

Vous pouvez accéder à une instance Memorystore pour Redis Cluster à partir d'un client situé dans une région différente de celle où se trouve l'instance Memorystore.

Afficher le point de terminaison de découverte de votre cluster

Chaque cluster dispose d'un point de terminaison de découverte auquel votre client se connecte. Ce point de terminaison est une combinaison d'une adresse IP et d'un numéro de port.

Vous pouvez afficher le point de terminaison de découverte d'un cluster dans Memorystore pour Redis Cluster à l'aide de la console Google Cloud ou de la gcloud CLI.

Console

  1. Accédez à la page Memorystore for Redis Cluster dans la console Google Cloud .

    Memorystore for Redis Cluster

  2. Cliquez sur l'ID de votre cluster.

  3. Dans la section Se connecter à cette instance, notez l'adresse IP et le numéro de port à côté de Point de terminaison de découverte. Ces deux valeurs utilisées ensemble constituent le point de terminaison de découverte de votre cluster.

gcloud

Pour afficher le point de terminaison de découverte de votre cluster, exécutez la describegcloud CLI comme expliqué dans la section Afficher les détails de l'instance.

La sortie devrait ressembler à ce qui suit :

authorizationMode: AUTH_MODE_DISABLED
createTime: '2023-08-04T17:49:07.988918793Z'
discoveryEndpoints:
- address: 10.142.0.13
  port: 6379
  pscConfig:
  - network: projects/my-project-364018/global/networks/default
name: projects/my-project-364018/locations/us-east1/clusters/my-cluster-1
pscConnections:
- address: 10.142.0.13
  forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project-364018/regions/us-east1/forwardingRules/sca-auto-fr-5bc46f69-ec80-4c5a-8971-ce267a4d8ddd
  network: projects/my-project-364018/global/networks/default
  projectId: my-project-364018
  pscConnectionId: '25734306048376845'
- address: 10.142.0.10
  forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project-364018/regions/us-east1/.
  forwardingRules/sca-auto-fr-817b64c5-85ac-48d0-82e3-c6fa99b4e67d
  network: projects/my-project-364018/global/networks/default
  projectId: my-project-364018
  pscConnectionId: '25734306048376842'
replicaCount: 0
shardCount: 3
sizeGb: 39
state: ACTIVE
tier: PERFORMANCE
transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
uid: cddda5de-d91f-449b-8755-3a665430271a

Notez l'adresse du point de terminaison et le numéro de port indiqués dans la section discovery_endpoints:. Ces deux valeurs combinées constituent le point de terminaison de découverte de votre cluster.

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

Vous pouvez vous connecter à l'instance Memorystore for Redis Cluster depuis n'importe quelle VM Compute Engine qui utilise le réseau autorisé de l'instance Memorystore.

Pour vous connecter à l'instance :

  1. Si vous ne disposez pas encore d'une VM Linux Compute Engine utilisant le réseau autorisé pour votre instance Memorystore pour Redis Cluster, créez-en une et connectez-vous en suivant Démarrage rapide pour créer une VM Linux.

  2. Installez la version 6.0 ou ultérieure de redis-cli sur la VM Compute Engine en suivant les instructions de la section Installer Redis sur Linux.

  3. Affichez le point de terminaison de découverte de votre cluster et notez-le.

  4. Connectez-vous au point de terminaison de découverte de votre instance en exécutant la commande suivante :

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    

    Où :

    • DISCOVERY_ENDPOINT_ADDRESS et PORT_NUMBER sont les valeurs que vous avez notées à l'étape précédente.
  5. Exécutez la commande CLUSTER SHARDS pour afficher la topologie de votre cluster. Notez l'adresse IP et le numéro de port de l'un des nœuds.

  6. Connectez-vous au nœud de votre choix en exécutant la commande suivante :

    redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
    

    Remplacez les éléments suivants :

    • NODE_IP_ADDRESS correspond à l'adresse IP du nœud que vous avez trouvée à l'étape précédente.
    • NODE_PORT correspond au numéro de port du nœud que vous avez trouvé à l'étape précédente.
  7. Une fois connecté au nœud, saisissez quelques commandes Redis :

    Saisissez cette commande :

    PING
    

    Résultat :

    PONG
    

    Saisissez les informations suivantes :

    SET HELLO WORLD
    

    Résultat :

    OK
    

    Saisissez le code suivant :

    GET HELLO
    

    Résultat :

    "WORLD"
    
  8. Une fois que vous avez terminé de tester votre connexion au nœud Redis, vous devez envisager de 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 de facturation Cloud.

Se connecter à une instance pour laquelle le chiffrement en transit est activé

Cette section fournit un exemple de connexion à une instance Memorystore for Redis Cluster pour laquelle le chiffrement en transit est activé.

  1. 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 la version 6.0 ou ultérieure de redis-cli sur la VM Compute Engine en suivant les instructions de la page Installer Redis sur Linux.
  2. Vérifiez le mode Autorité de certification (CA) que vous utilisez pour votre cluster.

  3. Affichez le point de terminaison de découverte de votre cluster et notez l'adresse IP et le numéro de port du point de terminaison.

  4. Connectez-vous au point de terminaison de découverte de votre instance en exécutant la commande suivante :

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem
    

    Remplacez les éléments suivants :

    • DISCOVERY_ENDPOINT_ADDRESS : adresse IP du point de terminaison de découverte que vous avez notée à l'étape précédente
    • PORT_NUMBER : numéro de port que vous avez noté à l'étape précédente

    Pour activer le mode d'assistance du cluster redis-cli, utilisez le bouton -c. Si vous ne fournissez pas ce commutateur, lorsque vous essayez d'accéder à des clés à partir d'un autre shard que celui auquel vous êtes connecté, le cluster renvoie une erreur MOVED. Toutefois, si vous utilisez le commutateur, le client se reconnecte automatiquement à l'adresse fournie dans la réponse d'erreur. Pour en savoir plus, consultez Évolutivité de Redis : clustering, sharding et emplacements de hachage.

    Si vous activez l'authentification Identity and Access Management (IAM) ou l'authentification de base basée sur des jetons sur le cluster, vous devez fournir des identifiants d'authentification en plus des indicateurs Transport Layer Security (TLS). Exemple :

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem --user USERNAME -a TOKEN
    

    Remplacez les éléments suivants :

    • USERNAME : nom d'utilisateur du cluster
    • TOKEN : jeton d'authentification

    Pour en savoir plus sur la génération ou la gestion de vos identifiants d'authentification, consultez Gérer l'authentification IAM et Sécuriser l'accès à vos clusters à l'aide de l'authentification de base basée sur les jetons.

  5. Exécutez la commande CLUSTER SHARDS pour afficher la topologie de votre cluster. Notez l'adresse IP et le numéro de port de l'un des nœuds.

  6. Connectez-vous à votre nœud en exécutant la commande suivante :

    redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c --tls --cacert /tmp/server_ca.pem
    

    Remplacez les éléments suivants :

    • NODE_IP_ADDRESS : adresse IP du nœud que vous avez notée à l'étape précédente.
    • NODE_PORT : numéro de port du nœud que vous avez noté à l'étape précédente

    Si votre cluster utilise l'authentification IAM ou l'authentification de base par jeton, assurez-vous d'inclure les indicateurs --user et -a, comme vous l'avez fait à l'étape du point de terminaison de découverte.

  7. Une fois connecté au nœud, saisissez quelques commandes Redis :

    Saisissez cette commande :

    PING
    

    Résultat :

    PONG