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
Accédez à la page Memorystore for Redis Cluster dans la console Google Cloud .
Cliquez sur l'ID de votre cluster.
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 :
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.
Installez la version 6.0 ou ultérieure de
redis-clisur la VM Compute Engine en suivant les instructions de la section Installer Redis sur Linux.Affichez le point de terminaison de découverte de votre cluster et notez-le.
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.
Exécutez la commande
CLUSTER SHARDSpour afficher la topologie de votre cluster. Notez l'adresse IP et le numéro de port de l'un des nœuds.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.
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"
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é.
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.
- Installez la version 6.0 ou ultérieure de
redis-clisur la VM Compute Engine en suivant les instructions de la page Installer Redis sur Linux.
- Installez la version 6.0 ou ultérieure de
Vérifiez le mode Autorité de certification (CA) que vous utilisez pour votre cluster.
Si le mode CA est par instance, installez les certificats CA de votre cluster en suivant les instructions de la section Installer les certificats CA sur le client.
Si le mode CA est défini sur shared, installez le bundle de certificats CA de votre cluster en suivant les instructions de la section Installer le bundle de certificats CA sur le client.
Si le mode CA est géré par le client, vos applications peuvent se connecter au cluster sans que vous ayez à télécharger et installer des certificats CA supplémentaires. Vous pouvez donc ignorer cette étape.
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.
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 erreurMOVED. 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.
Exécutez la commande
CLUSTER SHARDSpour afficher la topologie de votre cluster. Notez l'adresse IP et le numéro de port de l'un des nœuds.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
--useret-a, comme vous l'avez fait à l'étape du point de terminaison de découverte.Une fois connecté au nœud, saisissez quelques commandes Redis :
Saisissez cette commande :
PING
Résultat :
PONG