Auf dieser Seite wird erläutert, wie Sie eine Verbindung zu einer Memorystore for Redis Cluster-Instanz herstellen.
Clientunterstützung
Memorystore for Redis Cluster bietet keine eigenen Clientbibliotheken, sondern unterstützt vorhandene Clientbibliotheken von Drittanbietern, die das Redis-Protokoll unterstützen. Weitere Informationen zu den von Redis unterstützten Clientbibliotheken finden Sie unter Unterstützte Verbindungsclients.
Best Practice für den redis-py-Client
Wenn Sie mit dem redis-py-Python-Client eine Verbindung zu Ihrer Memorystore for Redis Cluster-Instanz 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 auf die Zulassungsliste setzen
Wenn Sie die richtigen Ports in Ihrer Firewall nicht auf die Zulassungsliste setzen, können bei Ihrer Instanz Verbindungsfehler auftreten. Weitere Informationen zum Aufnehmen von Ports in die Zulassungsliste finden Sie unter Fehlerbehebung.
Regionsübergreifender Zugriff
Sie können von einem Client aus, der sich in einer anderen Region als die Memorystore-Instanz befindet, auf eine Memorystore for Redis Cluster-Instanz zugreifen.
Discovery-Endpunkt des Clusters aufrufen
Jeder Cluster hat einen Discovery-Endpunkt, mit dem sich Ihr Client verbindet. 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 Console oder die gcloud CLIaufrufen. Google Cloud
Console
Rufen Sie in der Google Cloud Console die Memorystore for Redis Cluster Seite auf.
Klicken Sie auf Ihre Cluster-ID.
Notieren Sie sich im Abschnitt Verbindung zu dieser Instanz herstellen die IP-Adresse und die Portnummer neben Discovery-Endpunkt. Diese beiden Werte zusammen sind der Discovery-Endpunkt Ihres Clusters.
gcloud
Führen Sie die describe
gcloud CLI aus, wie im Abschnitt Instanzdetails ansehen beschrieben, um den Discovery-Endpunkt Ihres Clusters aufzurufen.
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 im Abschnitt discovery_endpoints:. Diese beiden Werte zusammen sind der Discovery-Endpunkt Ihres Clusters.
Verbindung von einer Compute Engine-VM mit redis-cli herstellen
Sie können von jeder Compute Engine-VM aus, die das autorisierte Netzwerk der Memorystore-Instanz verwendet, eine Verbindung zur Memorystore for Redis Cluster-Instanz herstellen.
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.Rufen Sie den Discovery-Endpunkt Ihres Clusters auf und notieren Sie ihn.
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 in dem vorherigen Schritt ermittelt haben.
- NODE_PORT ist die Portnummer des Knotens, die Sie im vorherigen Schritt ermittelt haben.
Geben Sie nach der Verbindung mit dem 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"
Nachdem Sie Ihre Verbindung zum Redis-Knoten getestet haben, sollten Sie die Compute Engine-VM löschen, mit der Sie eine Verbindung zur Redis-Instanz hergestellt haben. Dadurch vermeiden Sie, dass Ihrem Cloud-Rechnungskonto Gebühren berechnet werden.
Verbindung zu einer Instanz herstellen, für die die Verschlüsselung während der Übertragung aktiviert ist
In diesem Abschnitt wird ein Beispiel zum Herstellen einer Verbindung mit einer Memorystore for Redis Cluster-Instanz dargestellt, bei der die Verschlüsselung während der Übertragung aktiviert ist.
Wenn Sie 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 Modus der Zertifizierungsstelle, den Sie für Ihren Cluster verwenden.
Wenn der Modus der Zertifizierungsstelle „Pro Instanz“ ist, installieren Sie die Zertifizierungsstellenzertifikate Ihres Clusters. Folgen Sie dazu der Anleitung unter Zertifizierungsstellenzertifikate auf dem Client installieren.
Wenn der Modus der Zertifizierungsstelle „Gemeinsam“ ist, dann installieren Sie das CA-Zertifikatspaket Ihres Clusters. Folgen Sie dazu der Anleitung unter CA-Zertifikatspaket auf dem Client installieren.
Wenn der Modus der Zertifizierungsstelle „Vom Kunden verwaltet“ ist, können Ihre Anwendungen eine Verbindung zum Cluster herstellen, ohne dass Sie zusätzliche Zertifizierungsstellenzertifikate herunterladen und installieren müssen. Sie können diesen Schritt also überspringen.
Rufen Sie den Discovery-Endpunkt Ihres Clusters auf und notieren Sie ihn.
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
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 --tls --cacert /tmp/server_ca.pem
Ersetzen Sie Folgendes:
- NODE_IP_ADDRESS ist die IP-Adresse des Knotens, die Sie in dem vorherigen Schritt ermittelt haben.
- NODE_PORT ist die Portnummer des Knotens, die Sie im vorherigen Schritt ermittelt haben.
Geben Sie nach der Verbindung mit dem Knoten einige Redis-Befehle ein:
Geben Sie Folgendes ein:
PING
Ergebnis:
PONG