Verbindung zu einer Redis-Instanz herstellen

Auf dieser Seite wird beschrieben, wie Sie mithilfe von Telnet und redis-cli Außerdem finden Sie auf dieser Seite eine Anleitung zum wenn Sie Features wie Lesereplikate, AUTHENTIFIZIERUNG und Verschlüsselung während der Übertragung verwenden. Schließlich finden Sie auf dieser Seite Anleitungen zum Herstellen einer Verbindung von einer Google Kubernetes Engine zu verbessern.

Eine Liste der von Cloud Memorystore for Redis unterstützten Google Cloud-Umgebungen finden Sie unter Unterstützte Umgebungen. Einige serverlose Umgebungen, die von Memorystore unterstützt werden, erfordern einen Connector für serverlosen VPC-Zugriff. Weitere Informationen finden Sie unter Anforderungen für serverlosen VPC-Zugriff.

Verbindung zu einer Redis-Instanz über eine Compute Engine-VM mit Telnet herstellen

Sie können eine Verbindung zur Redis-Instanz über eine Compute Engine-VM herstellen, die das autorisierte Netzwerk der Redis-Instanz mit einer unterstützten IP-Adresse gemäß RFC 1918 verwendet.

  1. Wenn Sie noch keine Compute Engine-VM haben, die dasselbe autorisierte Netzwerk wie Ihre Redis-Instanz verwendet, erstellen Sie eine VM und stellen Sie eine Verbindung zu ihr her: Folgen Sie dazu der Kurzanleitung: Linux-VM verwenden.

  2. Installieren Sie telnet mit apt-get:

    sudo apt-get install telnet
    
  3. Rufen Sie vom Terminal aus Telnet an die IP-Adresse der Redis-Instanz auf und ersetzen Sie variables durch die entsprechenden Werte.

    telnet instance-ip-address 6379
    

    Bei Erfolg gibt der Befehl folgendes Ergebnis zurück:

    Trying instance-ip-address…
    Connected to instance-ip-address
    
  4. Geben Sie in der Telnet-Sitzung einige Redis-Befehle ein:

    Geben Sie Folgendes ein:

    PING
    

    Ergebnis:

    PONG
    

    Eingeben

    SET HELLO WORLD
    

    Ergebnis:

    +OK
    

    Geben Sie Folgendes ein:

    GET HELLO
    

    Ergebnis:

    $5
    WORLD
    

Verbindung zu einer Redis-Instanz über eine Compute Engine-VM mit redis-cli herstellen

Sie können eine Verbindung zur Redis-Instanz über eine Compute Engine-VM herstellen, die das autorisierte Netzwerk der Redis-Instanz mit einer unterstützten IP-Adresse gemäß RFC 1918 verwendet.

  1. Wenn Sie noch keine Compute Engine-VM haben, die das autorisierte Netzwerk für Ihre Redis-Instanz erstellen Sie eines und stellen Sie wie folgt eine Verbindung zu ihm her: VM-Instanz in einem bestimmten Subnetz erstellen

  2. Installieren Sie redis-cli auf der Compute Engine-VM. Führen Sie dazu den folgenden Befehl im Compute Engine-SSH-Terminal aus:

    sudo apt-get install redis-tools
    
  3. Führen Sie den folgenden Befehl im Compute Engine-Terminal aus und ersetzen Sie variables durch die entsprechenden Werte.

    redis-cli -h redis-instance-ip-address
    

    Sie sind jetzt über redis-cli mit Ihrer Redis-Instanz verbunden.

  4. Nachdem Sie Ihre Verbindung zur Redis-Instanz 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 Redis-Instanz herstellen, die AUTH verwendet

In diesem Abschnitt wird beschrieben, wie Sie eine Verbindung zu einer Redis-Instanz herstellen, für die die AUTH-Funktion aktiviert ist.

  1. Wenn Sie noch keine Compute Engine-VM haben, die dasselbe autorisierte Netzwerk wie Ihre Redis-Instanz verwendet, erstellen Sie eine VM und stellen eine Verbindung zu ihr her: Folgen Sie dazu der Kurzanleitung: Linux-VM verwenden.

  2. Installieren Sie redis-cli auf der Compute Engine-VM. Führen Sie dazu den folgenden Befehl im Compute Engine-SSH-Terminal aus:

    sudo apt-get install redis-tools
    
  3. AUTH-String Ihrer Instanz abrufen

  4. Führen Sie den folgenden Befehl aus, um redis-cli zur Authentifizierung und Verbindung mit Ihrer Instanz zu verwenden. Ersetzen Sie dabei variables durch die entsprechenden Werte:

    redis-cli -h instance-ip-address -a auth-string
    

    oder:

    redis-cli -h instance-ip-address
    AUTH auth-string
    
  5. Führen Sie einen Redis-Befehl SET und GET aus, um zu prüfen, ob eine authentifizierte Verbindung zu Ihrer Instanz hergestellt wurde.

  6. Nachdem Sie Ihre Verbindung zur Redis-Instanz 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 Redis-Instanz über den Lese-Endpunkt herstellen

Wenn für die Instanz Lesereplikate aktiviert sind, können Sie so eine Verbindung zum Lese-Endpunkt herstellen:

  1. Wenn Sie noch keine Compute Engine-VM haben, die dasselbe autorisierte Netzwerk wie Ihre Redis-Instanz verwendet, erstellen Sie eine VM und stellen Sie eine Verbindung zu ihr her: Folgen Sie dazu der Kurzanleitung: Linux-VM verwenden.

  2. Installieren Sie telnet mit apt-get:

    sudo apt-get install telnet
    
  3. Suchen Sie die IP-Adresse des Lese-Endpunkts Ihrer Instanz, indem Sie die Lesereplikatinformationen für die Instanz aufrufen.

  4. Stellen Sie vom Terminal aus eine Telnet-Verbindung zur IP-Adresse der Redis-Instanz her und ersetzen Sie dabei variables durch die entsprechenden Werte.

    telnet read-endpoint-ip 6379
    

    Bei Erfolg gibt der Befehl folgendes Ergebnis zurück:

    Trying read-endpoint-ip…
    Connected to read-endpoint-ip
    
  5. Geben Sie in der Telnet-Sitzung einige Redis-Befehle ein:

    Geben Sie Folgendes ein:

    PING
    

    Ergebnis:

    PONG
    

Sichere Verbindung zu einer Redis-Instanz über Stunnel und Telnet herstellen

In diesem Abschnitt wird ein Beispiel zum Herstellen einer Verbindung mit einer Redis-Instanz dargestellt, bei der die Verschlüsselung während der Übertragung mithilfe von Stunnel aktiviert ist.

  1. Wenn Sie noch keine Redis-Instanz mit aktivierter Verschlüsselung während der Übertragung haben, erstellen Sie eine. Folgen Sie dazu der Anleitung Redis-Instanz mit Verschlüsselung während der Übertragung erstellen.

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

    1. Installieren Sie die erforderlichen Tools für diese Anleitung, indem Sie folgende Befehle ausführen:

      sudo apt-get install stunnel4
      
      sudo apt-get install telnet
      
  3. Konfigurieren Sie Ihre Compute Engine-VM für die Verwendung mit Stunnel:

    1. 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
      
    2. Um die Zertifizierungsstelle(n) Ihrer Redis-Instanz anzuzeigen führen Sie folgenden Befehl in dem Standardterminal aus, mit dem Sie Google Cloud-Ressourcen verwalten (nicht im Compute Engine-Terminal):

      gcloud redis instances describe instance-id --region=region
      

      Es kann bis zu drei Zertifizierungsstellen geben.

    3. Kopieren Sie alle sichtbaren Zertifizierungsstellen, einschließlich der Zeilen -----BEGIN CERTIFICATE----- und -----END CERTIFICATE-----, und fügen Sie die zuvor erstellte Datei server_ca.pem ein.

    4. Erstellen Sie eine neue Datei, in die Sie Stunnel-Konfigurationsdaten einfügen können. Führen Sie dazu folgenden Befehl aus:

      sudo vim /etc/stunnel/redis-client.conf
      

      Fügen Sie folgenden Text in die Datei ein und ersetzen Sie redis-instance-ip durch die IP-Adresse der Redis-Instanz:

      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:6378
      connect=redis-instance-ip:6378
      

      Starten Sie Stunnel mit dem folgenden Befehl:

      sudo stunnel /etc/stunnel/redis-client.conf
      

      Überprüfen Sie, ob Stunnel ausgeführt wird:

      ps aux | grep stunnel
      

    5. Starten Sie Stunnel neu. Dazu führen Sie folgende Befehle aus:

      sudo systemctl restart stunnel4
      
  4. Führen Sie folgenden Befehl aus, um über Telnet eine Verbindung zu Ihrer Redis-Instanz herzustellen:

    telnet localhost 6378
    
  5. Pingen Sie in der Telnet-Sitzung die Redis-Instanz:

    Geben Sie Folgendes ein:

    PING
    

    Ergebnis:

    PONG
    

Verbindung von einem lokalen Computer mit Portweiterleitung herstellen

Es kann hilfreich sein, eine Verbindung zu Ihrer Redis-Instanz während der Entwicklung von Ihrem lokalen Computer herzustellen. Dazu müssen Sie eine Compute Engine-Instanz erstellen, die für die Portweiterleitung zur Redis-Instanz verwendet wird.

  1. Erstellen Sie eine Compute Engine-Instanz mit dem folgenden Befehl:

    gcloud compute instances create COMPUTE_VM_NAME --machine-type=f1-micro --zone=ZONE
    

    Wobei:

    • COMPUTE_VM_NAME der Name ist, den Sie für die Compute Engine-VM festlegen.
    • ZONE die Zone ist, in der Sie die VM bereitstellen möchten.

    Dieser Befehl erstellt eine kostengünstige Compute Engine-VM mit dem Maschinentyp f1-micro. Sie können auch andere Maschinentypen auswählen.

  2. Öffnen Sie ein neues Terminal auf Ihrem lokalen Computer.

  3. Führen Sie den folgenden Befehl aus, um einen SSH-Tunnel zu erstellen, der den Traffic über die Compute Engine-VM weiterleitet:

    gcloud compute ssh COMPUTE_VM_NAME --zone=ZONE -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379
    

    Wobei:

    • COMPUTE_VM_NAME der Name der Compute Engine-VM ist.
    • ZONE die Zone ist, in der sich die Compute Engine-VM befindet.
    • REDIS_INSTANCE_IP_ADDRESS die IP-Adresse Ihrer Redis-Instanz ist.
  4. Öffnen Sie zum Testen der Verbindung ein neues Terminalfenster und führen Sie den folgenden Befehl aus:

    redis-cli ping
    

    Bei korrekter Funktionsweise sollte das Ergebnis Folgendes zurückgeben:

    PONG
    

    Sie sind jetzt mit der Redis-Instanz verbunden und können mit diesem offenen SSH-Tunnel Befehle an die Redis-Instanz senden. Installieren Sie redis-cli, damit Sie diesen Befehl ausführen können, falls noch nicht geschehen.

  5. Der SSH-Tunnel bleibt geöffnet, solange das Terminalfenster mit der SSH-Tunnelverbindung aufrechterhalten wird.

Verbindung zu einer Redis-Instanz über einen Google Kubernetes Engine-Cluster herstellen

Sie können eine Verbindung zur Redis-Instanz über einen Google Kubernetes Engine-Cluster herstellen, der dasselbe autorisierte Netzwerk wie Ihre Redis-Instanz verwendet.

Verbindung über einen Pod mit einer Bash-Shell herstellen

  1. Rufen Sie in der Google Cloud Console die GKE-Seite auf.
    GKE
  2. Klicken Sie auf den GKE-Cluster, über den Sie eine Verbindung herstellen möchten. Wenn Sie noch keinen Cluster haben, erstellen Sie einen Cluster mit aktivierten IP-Aliassen. Eine Anleitung zum Erstellen eines Clusters mit aktivierten IP-Aliassen finden Sie unter VPC-native Cluster erstellen.
  3. Klicken Sie rechts neben dem Namen des Clusters auf die Schaltfläche Verbinden und dann auf In Cloud Shell ausführen.
  4. Konfigurieren Sie den Zugriff auf die Befehlszeile kubectl mit folgendem Befehl:
    gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_ZONE --project=PROJECT_ID
    • CLUSTER_NAME ist der Name des Clusters.
    • CLUSTER_ZONE ist die Zone, in der sich der Cluster befindet. Muss auch die Zone sein, in der sich die Redis-Instanz befindet.
    • PROJECT_ID ist das Projekt, in dem sich der Cluster und die Redis-Instanzen befinden.
    Sie sollten die folgende Erfolgsmeldung erhalten: kubeconfig generated for CLUSTER_NAME
  5. Wenn die Cluster-Version 1.8 oder höher ist und IP-Aliasse aktiviert sind, überspringen Sie diesen Schritt. Wenn Sie einen Cluster der Version 1.7 oder niedriger haben oder für Ihren Cluster der Version 1.8 oder höher keine IP-Aliasse aktiviert sind, führen Sie die folgenden Umgehungsschritte aus. Daraufhin können Sie versuchen, eine Verbindung zu Ihrer Instanz herzustellen: Weitere Informationen zu IP-Aliassen und zum Erstellen eines Clusters, für den diese Einstellung aktiviert ist, finden Sie unter VPC-nativen Cluster erstellen.
  6. Verwenden Sie den folgenden Befehl, um eine Verbindung zu einer Bash-Shell herzustellen:
    kubectl run -i --tty busybox --image=busybox -- sh
  7. Stellen Sie eine Telnet-Verbindung zu Ihrer Redis-Instanz mit der Hostadresse und Portnummer her:
    telnet HOST-IP PORT
  8. Geben Sie einen einfachen Redis-Befehl ein, um die Verbindung zu überprüfen:
    PING
    +PONG
  9. Zum Trennen der Telnet-Verbindung drücken Sie Strg + C oder die Befehlstaste + C (Mac-Tastatur). Zum Beenden der Bash-Shell in Ihrem Pod geben Sie "return" ein. Wenn Sie fertig sind und keine Verbindung mehr zu Redis benötigen, führen Sie den folgenden Befehl im Verzeichnis /k8s-custom-iptables/ aus:
    ./uninstall.sh

Verbindung zu einer Redis-Instanz über einen Google Kubernetes Engine-Pod herstellen

Für diesen Vorgang benötigen Sie einen GKE-Cluster. Wenn Sie noch keinen Cluster haben, erstellen Sie einen Cluster mit aktivierten IP-Aliassen. Eine Anleitung zum Erstellen eines Clusters mit aktivierten IP-Aliassen finden Sie unter VPC-native Cluster erstellen.

  1. Klicken Sie in der rechten oberen Ecke der Konsole auf die Schaltfläche Cloud Shell aktivieren Cloud Shell aktivieren.
  2. Konfigurieren Sie den Zugriff auf die Befehlszeile kubectl mit folgendem Befehl:
    gcloud container clusters get-credentials CLUSTER_NAME --zone CLUSTER_ZONE --project PROJECT_ID
    • CLUSTER_NAME ist der Name des Clusters.
    • CLUSTER_ZONE ist die Zone, in der sich der Cluster befindet. Muss auch die Zone sein, in der sich die Redis-Instanz befindet.
    • PROJECT_ID ist das Projekt, in dem sich der Cluster und die Redis-Instanzen befinden.
    Sie sollten die folgende Erfolgsmeldung erhalten: kubeconfig generated for CLUSTER_NAME
  3. Wenn die Cluster-Version 1.8 oder höher ist und IP-Aliasse aktiviert sind, überspringen Sie diesen Schritt. Wenn Sie einen Cluster der Version 1.7 oder niedriger haben oder für Ihren Cluster der Version 1.8 oder höher keine IP-Aliasse aktiviert sind, führen Sie die folgenden Umgehungsschritte aus. Daraufhin können Sie versuchen, eine Verbindung zu Ihrer Instanz herzustellen: Weitere Informationen zu IP-Aliassen und zum Erstellen eines Clusters, für den diese Einstellung aktiviert ist, finden Sie unter VPC-nativen Cluster erstellen.
  4. Verwenden Sie den folgenden Befehl, um einen Redis-Pod zu starten, auf dem redis-cli ausgeführt wird:
    kubectl run -i --tty redisbox --image=gcr.io/google_containers/redis:v1 -- sh
  5. Führen Sie einen redis-cli-Befehl aus und ersetzen Sie HOST-IP durch die Host-IP-Adresse Ihrer Redis-Instanz:
    redis-cli -h HOST-IP info
  6. Führen Sie optional einen Redis-Benchmark-Befehl aus. Ersetzen Sie dabei HOST-IP erneut durch die Host-IP-Adresse Ihrer Redis-Instanz:
    redis-benchmark -c 100 -n 100000 -d 1024 -r 100000 -t PING,SET,GET,INCR,LPUSH,RPUSH,LPOP,RPOP,SADD,SPOP,MSET -h HOST-IP -q
  7. Zum Beenden des Redis-Pods geben Sie return ein. Wenn Sie fertig sind und keine Verbindung mehr zu Redis benötigen, führen Sie den folgenden Befehl im Verzeichnis /k8s-custom-iptables/ aus:
    ./uninstall.sh

Nächste Schritte

Stellen Sie eine Verbindung zu Ihrer Redis-Instanz mithilfe einer Beispielanwendung her, die in einer der folgenden Umgebungen ausgeführt wird: