Cette page explique comment se connecter à une instance de cluster Memorystore pour Redis.
Service client
Le cluster Memorystore pour Redis ne fournit pas ses propres bibliothèques clientes, mais est compatible avec les bibliothèques clientes tierces existantes qui acceptent le protocole Redis. Vous trouverez une liste de clients sur la page Clients Redis.
Bonnes pratiques pour les clients Redis-py
Pour vous connecter à votre instance de cluster Memorystore pour Redis avec le client Python redis-py, vous devez ajouter skip_full_coverage_check=True
lors de la déclaration d'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'))
Accès interrégional
Vous pouvez accéder à une instance de cluster Memorystore pour Redis depuis 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
Pour afficher le point de terminaison de découverte de votre cluster Memorystore, procédez comme suit:
Console
Accédez à la page Memorystore pour Redis Cluster dans la console Google Cloud.
Cliquez sur votre ID de cluster.
Dans la section Se connecter à cette instance, notez l'adresse IP interne et le port de connexion. Ces deux valeurs utilisées ensemble sont 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 CLI describe
gcloud comme expliqué dans la section Afficher les détails de l'instance.
La sortie devrait ressembler à ce qui suit :
createTime: '2023-05-30T19:47:37.850985390Z'
discoveryEndpoints:
- address: 10.142.0.10
port: 6379
pscConfig:
network: projects/my-project-364018/global/networks/default
projectId: my-project-364018
name: projects/my-project-364018/locations/us-east1/clusters/my-cluster-1
replicaCount: 0
shardCount: 3
sizeGb: 39
state: ACTIVE
transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
uid: 87b47146-217d-472e-96e5-13962c0e8706
Notez l'adresse du point de terminaison et le numéro de port indiqués dans la section discovery_endpoints:
. Ces deux valeurs utilisées ensemble sont le point de terminaison de découverte de votre cluster.
Se connecter à partir d'une VM Compute Engine avec redis-cli
Vous pouvez vous connecter à l'instance de cluster Memorystore pour Redis depuis n'importe quelle VM Compute Engine utilisant le réseau autorisé de l'instance Memorystore.
Pour vous connecter à l'instance:
Si vous ne disposez pas encore d'une VM Compute Engine utilisant le réseau autorisé pour votre instance de cluster Memorystore pour Redis, créez-en une et connectez-vous en suivant les instructions de la page Démarrage rapide pour créer une VM Linux.
Installez
redis-cli
sur la VM Compute Engine. Si vous avez créé une VM Linux basée sur Debian, vous pouvez exécuter la commande suivante à partir du terminal SSH de Compute Engine:sudo apt-get update sudo apt-get install redis
Affichez le point de terminaison de découverte de votre cluster et notez-le.
Exécutez la commande suivante dans le terminal du cluster Memorystore pour Redis en remplaçant les variables par les valeurs appropriées.
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.
Une fois la connexion établie, saisissez quelques commandes Redis:
Saisissez les informations suivantes :
PING
Résultat :
PONG
Saisissez les informations suivantes :
SET HELLO WORLD
Résultat :
OK
Saisissez cette commande :
GET HELLO
Résultat
"WORLD"
Une fois les tests de connexion à l'instance Redis terminés, vous devez envisager de supprimer la VM Compute Engine que vous avez utilisée pour vous connecter à l'instance Redis. Cela vous permet d'éviter que des frais ne soient facturés sur votre compte de facturation Cloud.
Se connecter en toute sécurité à un cluster Memorystore à l'aide de Stunnel et de telnet
Cette section fournit un exemple de connexion à une instance de cluster Memorystore pour Redis pour laquelle le chiffrement en transit est activé à l'aide de Stunnel.
Si vous ne disposez pas encore de cluster Memorystore pour lequel le chiffrement en transit est activé, créez-en un en suivant la procédure Créer une instance avec chiffrement en transit.
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 les outils nécessaires pour ce guide:
sudo apt-get install stunnel4
sudo apt-get install telnet
Configurez votre VM Compute Engine l'utiliser avec Stunnel :
Créez un fichier dans lequel placer votre autorité de certification, en exécutant la commande suivante :
sudo vim /tmp/server_ca.pem
Affichez 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 dans le terminal Compute Engine):
gcloud alpha redis clusters get-cluster-certificate-authority --cluster-id=CLUSTER_ID
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 fichierserver_ca.pem
que vous avez créé précédemment.Créez un fichier dans lequel placer les informations de configuration Stunnel:
sudo vim /etc/stunnel/redis-client.conf
Collez le texte suivant dans le fichier, en remplaçant DISCOVERY_ENDPOINT_ADDRESS par l'adresse IP du point de terminaison du service de connexion privé de votre cluster:
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:6379 connect=DISCOVERY_ENDPOINT_ADDRESS:PORT_NUMBER
Démarrez Stunnel:
sudo stunnel /etc/stunnel/redis-client.conf
Vérifiez que stunnel est en cours d'exécution:
ps aux | grep stunnel
Redémarrez Stunnel:
sudo systemctl restart stunnel4
Pour vous connecter à votre instance Redis à l'aide de Redis-CLI, exécutez la commande suivante:
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
Une fois la connexion établie, saisissez quelques commandes Redis:
Saisissez les informations suivantes :
PING
Résultat
PONG