Auf dieser Seite wird beschrieben, wie Sie eine Verbindung zu einer Memorystore for Redis-Clusterinstanz herstellen.
Clientunterstützung
Memorystore for Redis Cluster bietet keine eigenen Clientbibliotheken, sondern unterstützt vorhandene Drittanbieter-Clientbibliotheken, die das Redis-Protokoll unterstützen. Weitere Informationen zu den von Redis unterstützten Clientbibliotheken finden Sie unter Unterstützte Verbindungsclients.
Best Practices für den redis-py-Client
Wenn Sie mit dem Python-Client redis-py eine Verbindung zu Ihrer Memorystore for Redis-Clusterinstanz herstellen möchten, müssen Sie beim Deklarieren eines Redis-Clusters skip_full_coverage_check=True hinzufügen:
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'))
Ports in der Firewall zulassen
Wenn Sie die richtigen Ports in Ihrer Firewall nicht zulassen, können in Ihrem Cluster Verbindungsfehler auftreten, da die Firewall die von Memorystore for Redis Cluster verwendeten Ports blockieren kann.
Für alle Private Service Connect-Endpunkte Ihres Clusters müssen Sie den TCP-Port 6379 sowie die TCP-Ports 11000 bis 13047 zulassen. Weitere Informationen finden Sie unter Fehlerbehebung.
Regionenübergreifender Zugriff
Sie können von einem Client, der sich in einer anderen Region als die Memorystore for Redis Cluster-Instanz befindet, auf die Instanz zugreifen.
Erkennungs-Endpunkt des Clusters ansehen
Jeder Cluster hat einen Erkennungs-Endpunkt, mit dem Ihr Client eine Verbindung herstellt. Dieser Endpunkt ist eine Kombination aus einer IP-Adresse und einer Portnummer.
Sie können den Discovery-Endpunkt eines Clusters in Memorystore for Redis-Cluster entweder über die Google Cloud Console oder die gcloud CLI aufrufen.
Console
Rufen Sie in der Google Cloud Console die Seite Memorystore for Redis Cluster auf.
Klicken Sie auf Ihre Cluster-ID.
Notieren Sie sich im Abschnitt Mit dieser Instanz verbinden die IP-Adresse und Portnummer neben Discovery-Endpunkt. Diese beiden Werte zusammen bilden den Ermittlungsendpunkt Ihres Clusters.
gcloud
Wenn Sie den Discovery-Endpunkt Ihres Clusters aufrufen möchten, führen Sie die describe-gcloud CLI aus, wie im Abschnitt Instanzdetails ansehen beschrieben.
Die Ausgabe sollte in etwa so aussehen:
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
Notieren Sie sich die Endpunktadresse und die Portnummer, die im Abschnitt discovery_endpoints: aufgeführt sind. Diese beiden Werte zusammen bilden den Discovery-Endpunkt Ihres Clusters.
Über eine Compute Engine-VM mit redis-cli verbinden
Sie können eine Verbindung zur Memorystore for Redis-Clusterinstanz über jede Compute Engine-VM herstellen, die das autorisierte Netzwerk der Memorystore-Instanz verwendet.
So stellen Sie eine Verbindung zur Instanz her:
Wenn Sie noch keine Linux Compute Engine-VM haben, die das autorisierte Netzwerk für Ihre Memorystore for Redis Cluster-Instanz verwendet, erstellen Sie eine VM und stellen Sie eine Verbindung zu ihr her: Folgen Sie dazu der Kurzanleitung zum Erstellen einer Linux-VM.
Installieren Sie
redis-cliVersion 6.0 oder höher auf der Compute Engine-VM. Folgen Sie dazu der Anleitung unter Redis unter Linux installieren.Discovery-Endpunkt des Clusters ansehen und notieren.
Stellen Sie mit dem folgenden Befehl eine Verbindung zum Discovery-Endpunkt Ihrer Instanz her:
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
Wobei:
- DISCOVERY_ENDPOINT_ADDRESS und PORT_NUMBER sind die Werte, die Sie im vorherigen Schritt notiert haben.
Führen Sie den Befehl
CLUSTER SHARDSaus, um die Clustertopologie aufzurufen. Notieren Sie sich eine der IP-Adressen und Portnummern des Knotens.Stellen Sie mit dem folgenden Befehl eine Verbindung zum gewünschten Knoten her:
redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
Ersetzen Sie Folgendes:
- NODE_IP_ADDRESS ist die IP-Adresse des Knotens, die Sie im vorherigen Schritt ermittelt haben.
- NODE_PORT ist die Portnummer des Knotens, die Sie im vorherigen Schritt ermittelt haben.
Geben Sie nach der Verbindung zum Knoten einige Redis-Befehle ein:
Geben Sie Folgendes ein:
PING
Ergebnis:
PONG
Eingeben
SET HELLO WORLD
Ergebnis:
OK
Geben Sie Folgendes ein:
GET HELLO
Ergebnis:
"WORLD"
Wenn Sie die Verbindung zum Redis-Knoten getestet haben, sollten Sie die Compute Engine-VM löschen, die Sie zum Herstellen der Verbindung zur Redis-Instanz verwendet haben. So vermeiden Sie, dass Ihrem Cloud-Rechnungskonto Gebühren in Rechnung gestellt werden.
Verbindung zu einer Instanz mit aktivierter Verschlüsselung während der Übertragung herstellen
In diesem Abschnitt finden Sie ein Beispiel dafür, wie Sie eine Verbindung zu einer Memorystore for Redis Cluster-Instanz herstellen, für die die Verschlüsselung während der Übertragung aktiviert ist.
Wenn Sie noch keine Compute Engine-VM haben, die dasselbe autorisierte Netzwerk wie die Redis-Instanz aus dem vorherigen Schritt verwendet, erstellen Sie eine VM und stellen Sie eine Verbindung zu ihr her: Folgen Sie dazu der Kurzanleitung: Linux-VM verwenden.
- Installieren Sie
redis-cliVersion 6.0 oder höher auf der Compute Engine-VM. Folgen Sie dazu der Anleitung unter Redis unter Linux installieren.
- Installieren Sie
Prüfen Sie den Zertifizierungsstellenmodus, den Sie für Ihren Cluster verwenden.
Wenn der CA-Modus per-instance ist, installieren Sie die CA-Zertifikate Ihres Clusters gemäß der Anleitung unter CA-Zertifikate auf dem Client installieren.
Wenn der CA-Modus shared ist, installieren Sie das CA-Zertifikatsbündel Ihres Clusters gemäß der Anleitung unter CA-Zertifikatsbündel auf dem Client installieren.
Wenn der Zertifizierungsstellenmodus customer-managed ist, können Ihre Anwendungen eine Verbindung zum Cluster herstellen, ohne dass Sie zusätzliche CA-Zertifikate herunterladen und installieren müssen. Sie können diesen Schritt daher überspringen.
Erkennungsendpunkt des Clusters aufrufen und IP-Adresse und Portnummer des Endpunkts notieren.
Stellen Sie mit dem folgenden Befehl eine Verbindung zum Discovery-Endpunkt Ihrer Instanz her:
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem
Ersetzen Sie Folgendes:
- DISCOVERY_ENDPOINT_ADDRESS: die IP-Adresse des Discovery-Endpunkts, die Sie im vorherigen Schritt notiert haben
- PORT_NUMBER: die Portnummer, die Sie im vorherigen Schritt notiert haben
Verwenden Sie den Schalter
-c, um denredis-cli-Clustermodus zu aktivieren. Wenn Sie diesen Schalter nicht angeben und versuchen, auf Schlüssel aus einem anderen Shard als dem zuzugreifen, mit dem Sie verbunden sind, gibt der Cluster einenMOVED-Fehler zurück. Wenn Sie den Schalter jedoch verwenden, stellt der Client automatisch eine neue Verbindung zur Adresse her, die in der Fehlerantwort angegeben ist. Weitere Informationen finden Sie unter Redis-Skalierbarkeit: Clustering, Sharding und Hash-Slots.Wenn Sie die IAM-Authentifizierung (Identity and Access Management) oder die einfache tokenbasierte Authentifizierung für den Cluster aktivieren, müssen Sie zusammen mit den TLS-Flags (Transport Layer Security) Authentifizierungsdaten angeben. Beispiel:
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem --user USERNAME -a TOKEN
Ersetzen Sie Folgendes:
- USERNAME: der Nutzername des Clusters
- TOKEN: das Authentifizierungstoken
Weitere Informationen zum Generieren oder Verwalten Ihrer Anmeldedaten finden Sie unter IAM-Authentifizierung verwalten und Zugriff auf Ihre Cluster mit einfacher tokenbasierter Authentifizierung sichern.
Führen Sie den Befehl
CLUSTER SHARDSaus, um die Clustertopologie aufzurufen. Notieren Sie sich die IP-Adresse und die Portnummer eines der Knoten.Stellen Sie mit dem folgenden Befehl eine Verbindung zu Ihrem Knoten her:
redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c --tls --cacert /tmp/server_ca.pem
Ersetzen Sie Folgendes:
- NODE_IP_ADDRESS: die IP-Adresse des Knotens, die Sie im vorherigen Schritt notiert haben
- NODE_PORT: die Portnummer des Knotens, die Sie im vorherigen Schritt notiert haben
Wenn Ihr Cluster die IAM- oder die einfache tokenbasierte Authentifizierung verwendet, müssen Sie die Flags
--userund-aeinfügen, wie Sie es im Schritt zum Ermittlungsendpunkt getan haben.Geben Sie nach der Verbindung zum Knoten einige Redis-Befehle ein:
Geben Sie Folgendes ein:
PING
Ergebnis:
PONG