Verbindung zu einer Memorystore for Redis Cluster-Instanz herstellen

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 Drittanbieter-Clientbibliotheken, die das Redis-Protokoll unterstützen. Eine Beispiel-Clientliste finden Sie auf der Redis-Seite Clients.

Best Practices für redis-py-Clients

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 auf die Zulassungsliste setzen

Wenn Sie die richtigen Ports in Ihrer Firewall nicht auf die Zulassungsliste setzen, können auf Ihrer Instanz Verbindungsfehler auftreten. Weitere Informationen zum Zulassen von Ports finden Sie unter Fehlerbehebung.

Regionenü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-Clusterinstanz zugreifen.

Discovery-Endpunkt des Clusters ansehen

So rufen Sie den Erkennungs-Endpunkt Ihres Memorystore-Clusters auf:

Konsole

  1. Rufen Sie in der Google Cloud -Konsole die Seite Memorystore for Redis Cluster auf.

    Memorystore for Redis Cluster

  2. Klicken Sie auf Ihre Cluster-ID.

  3. Notieren Sie sich im Abschnitt Mit dieser Instanz verbinden die IP-Adresse und Portnummer neben Discovery-Endpunkt. Zusammen bilden diese beiden Werte den Discovery-Endpunkt Ihres Clusters.

gcloud

Führen Sie die describegcloud 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, die im Abschnitt discovery_endpoints: aufgeführt sind. Zusammen bilden diese beiden Werte den Erkennungsendpunkt Ihres Clusters.

Verbindung über eine Compute Engine-VM mit redis-cli herstellen

Sie können eine Verbindung zur Memorystore for Redis-Clusterinstanz über eine beliebige Compute Engine-VM herstellen, die das autorisierte Netzwerk der Memorystore-Instanz verwendet.

So stellen Sie eine Verbindung zur Instanz her:

  1. Wenn Sie noch keine Linux Compute Engine-VM haben, die das autorisierte Netzwerk für Ihre Memorystore for Redis-Clusterinstanz verwendet, erstellen Sie eine VM und stellen Sie eine Verbindung zu ihr her: Folgen Sie dazu der Kurzanleitung zum Erstellen einer Linux-VM.

  2. Installieren Sie redis-cli Version 6.0 oder höher auf der Compute Engine-VM. Folgen Sie dazu der Anleitung unter Redis unter Linux installieren.

  3. Discovery-Endpunkt des Clusters aufrufen und notieren

  4. 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.
  5. Führen Sie den Befehl CLUSTER SHARDS aus, um die Clustertopologie aufzurufen. Notieren Sie sich eine der IP-Adressen und Portnummern des Knotens.

  6. 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.
  7. 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"
    
  8. 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 für die Verbindung zu einer Memorystore for Redis-Clusterinstanz mit aktivierter Verschlüsselung während der Übertragung dargestellt.

  1. 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.

    1. Installieren Sie redis-cli Version 6.0 oder höher auf der Compute Engine-VM. Folgen Sie dazu der Anleitung unter Redis unter Linux installieren.
  2. Installieren Sie die Zertifizierungsstelle Ihrer Instanz auf der Linux-VM. Folgen Sie dazu der Anleitung unter Zertifizierungsstellen auf Ihrem Client installieren.

  3. Discovery-Endpunkt des Clusters aufrufen und notieren

  4. 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.
  5. Führen Sie den Befehl CLUSTER SHARDS aus, um die Clustertopologie aufzurufen. Notieren Sie sich eine der IP-Adressen und Portnummern des Knotens.

  6. 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 im vorherigen Schritt ermittelt haben.
    • NODE_PORT ist die Portnummer des Knotens, die Sie im vorherigen Schritt ermittelt haben.
  7. Geben Sie nach der Verbindung zum Knoten einige Redis-Befehle ein:

    Geben Sie Folgendes ein:

    PING
    

    Ergebnis:

    PONG