Auf dieser Seite wird erläutert, wie Sie eine Verbindung zu einer Memorystore for Redis-Clusterinstanz herstellen.
Kundensupport
Memorystore for Redis-Cluster stellt keine eigenen Clientbibliotheken bereit, sondern unterstützt vorhandene Clientbibliotheken von Drittanbietern, die das Redis-Protokoll unterstützen. Eine Beispielliste von Clients finden Sie auf der Redis-Seite Clients.
Best Practice für Redis-py-Client
Wenn Sie über den 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'))
Regionsübergreifender Zugriff
Sie können auf eine Memorystore for Redis-Clusterinstanz von einem Client aus zugreifen, der sich in einer anderen Region als der Memorystore-Instanz befindet.
Discovery-Endpunkt des Clusters ansehen
So rufen Sie den Discovery-Endpunkt Ihres Memorystore-Clusters auf:
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 interne IP-Adresse und den Verbindungsport. Diese beiden Werte, die zusammen verwendet werden, sind der Erkennungsendpunkt Ihres Clusters.
gcloud
Führen Sie die describe
-gcloud CLI aus, wie im Abschnitt Instanzdetails anzeigen beschrieben, um den Erkennungsendpunkt Ihres Clusters anzusehen.
Die Ausgabe sollte in etwa so aussehen:
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
Notieren Sie sich die Adresse und die Portnummer des Endpunkts, die im Abschnitt discovery_endpoints:
aufgeführt sind. Diese beiden zusammen verwendeten Werte sind der Erkennungsendpunkt Ihres Clusters.
Verbindung von einer Compute Engine-VM mit redis-cli herstellen
Sie können eine Verbindung zur Memorystore for Redis-Clusterinstanz von jeder Compute Engine-VM aus herstellen, die das autorisierte Netzwerk der Memorystore-Instanz verwendet.
So stellen Sie eine Verbindung zur Instanz her:
Wenn Sie noch keine Compute Engine-VM haben, die das autorisierte Netzwerk für Ihre Memorystore for Redis-Clusterinstanz verwendet, erstellen Sie eine und stellen Sie eine Verbindung zu ihr her. Folgen Sie dazu der Kurzanleitung zum Erstellen einer Linux-VM.
redis-cli
auf der Compute Engine-VM installieren Wenn Sie eine Linux-Debian-basierte VM erstellt haben, können Sie den folgenden Befehl über das Compute Engine-SSH-Terminal ausführen:sudo apt-get update sudo apt-get install redis
Rufen Sie den Erkennungsendpunkt Ihres Clusters auf und notieren Sie ihn.
Führen Sie im Memorystore for Redis-Clusterterminal den folgenden Befehl aus und ersetzen Sie die Variablen durch die entsprechenden Werte.
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.
Geben Sie nach der Verbindung einige Redis-Befehle ein:
Geben Sie Folgendes ein:
PING
Ergebnis:
PONG
Eingeben
SET HELLO WORLD
Ergebnis:
OK
Geben Sie Folgendes ein:
GET HELLO
Auswirkungen:
"WORLD"
Nachdem Sie die Verbindung zur Redis-Instanz getestet haben, sollten Sie die Compute Engine-VM löschen, mit der Sie die Verbindung zur Redis-Instanz herstellen. So vermeiden Sie, dass Ihrem Cloud-Rechnungskonto Gebühren in Rechnung gestellt werden.
Sichere Verbindung zu einem Memorystore-Cluster über Stunnel und Telnet herstellen
Dieser Abschnitt enthält ein Beispiel für die Verbindung mit einer Memorystore for Redis-Clusterinstanz, für die die Verschlüsselung während der Übertragung mit Stunnel aktiviert ist.
Wenn Sie noch keinen Memorystore-Cluster mit aktivierter Verschlüsselung während der Übertragung haben, erstellen Sie einen mit Instanz mit Verschlüsselung während der Übertragung erstellen.
Wenn Sie noch keine Compute Engine-VM haben, die dasselbe autorisierte Netzwerk wie die Redis-Instanz aus dem vorherigen Schritt verwendet, erstellen Sie eine und stellen Sie eine Verbindung zu ihr her. Folgen Sie dazu der Kurzanleitung: Linux-VM verwenden.
Installieren Sie die erforderlichen Tools für diesen Leitfaden:
sudo apt-get install stunnel4
sudo apt-get install telnet
Konfigurieren Sie Ihre Compute Engine-VM für die Verwendung mit Stunnel:
Erstellen Sie mit folgendem Befehl eine neue Datei, in die Sie Ihre Zertifizierungsstelle (CA, Certification Authority) einsetzen können:
sudo vim /tmp/server_ca.pem
Führen Sie den folgenden Befehl im Standardterminal aus, mit dem Sie die Google Cloud-Ressourcen verwalten (nicht das Compute Engine-Terminal), um die Zertifizierungsstellen Ihrer Redis-Instanz anzusehen:
gcloud alpha redis clusters get-cluster-certificate-authority --cluster-id=CLUSTER_ID
Kopieren Sie alle sichtbaren Zertifizierungsstellen, einschließlich der Zeilen
-----BEGIN CERTIFICATE-----
und-----END CERTIFICATE-----
, und fügen Sie die zuvor erstellte Dateiserver_ca.pem
ein.Erstellen Sie eine neue Datei, in die Sie Stunnel-Konfigurationsinformationen einfügen möchten:
sudo vim /etc/stunnel/redis-client.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie dabei DISCOVERY_ENDPOINT_ADDRESS durch die IP-Adresse des privaten Dienstverbindungsendpunkts des Clusters:
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
Stunnel starten:
sudo stunnel /etc/stunnel/redis-client.conf
Prüfen Sie, ob Stunnel ausgeführt wird:
ps aux | grep stunnel
Starten Sie Stunnel neu:
sudo systemctl restart stunnel4
Führen Sie den folgenden Befehl aus, um über Redis-CLI eine Verbindung zu Ihrer Redis-Instanz herzustellen:
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
Geben Sie nach der Verbindung einige Redis-Befehle ein:
Geben Sie Folgendes ein:
PING
Auswirkungen:
PONG