Conéctate a una instancia de clústeres de Memorystore para Redis

En esta página, se explica cómo conectarse a una instancia de clústeres de Memorystore para Redis.

Asistencia al cliente

El clúster de Memorystore para Redis no proporciona sus propias bibliotecas cliente, sino que es compatible con las bibliotecas cliente de terceros existentes que admiten el protocolo Redis. Puedes encontrar una lista de clientes de ejemplo en la página Clientes de Redis.

Prácticas recomendadas para clientes de Redis-py

Si quieres conectarte a tu instancia de clúster de Memorystore para Redis con el cliente de Python redis-py, debes agregar el skip_full_coverage_check=True cuando declares un clúster de Redis:

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'))

Acceso entre regiones

Puedes acceder a una instancia de clústeres de Memorystore para Redis desde un cliente ubicado en una región diferente de la ubicación de la instancia de Memorystore.

Consulta el extremo de descubrimiento de tu clúster

Para ver el extremo de descubrimiento del clúster de Memorystore, sigue estas instrucciones:

Consola

  1. Ve a la página Clúster de Memorystore para Redis en Google Cloud Console.

    Clúster de Memorystore para Redis

  2. Haz clic en tu ID del clúster.

  3. En la sección Conectarse a esta instancia, anota la dirección IP interna y el puerto de conexión. Estos dos valores que se usan juntos son el extremo de descubrimiento de tu clúster.

gcloud

Para ver el extremo de descubrimiento de tu clúster, ejecuta la gcloud CLI describe como se explica en la sección de detalles de la instancia.

El resultado debería ser similar al siguiente ejemplo:

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

Toma nota de la dirección del extremo y el número de puerto que se indican en la sección discovery_endpoints:. Estos dos valores que se usan juntos son el extremo de descubrimiento de tu clúster.

Conéctate desde una VM de Compute Engine con redis-cli

Puedes conectarte a la instancia del clúster de Memorystore para Redis desde cualquier VM de Compute Engine que use la red autorizada de la instancia de Memorystore.

Para conectarte a la instancia, sigue estos pasos:

  1. Si aún no tienes una VM de Compute Engine que use la red autorizada para tu instancia de clúster de Memorystore para Redis, crea una y conéctate a ella siguiendo la Guía de inicio rápido para crear una VM de Linux.

  2. Instala redis-cli en la VM de Compute Engine. Si creaste una VM basada en Debian de Linux, puedes ejecutar el siguiente comando desde la terminal SSH de Compute Engine:

    sudo apt-get update
    sudo apt-get install redis
    
  3. Visualiza el extremo de descubrimiento de tu clúster y anótalo.

  4. Ejecuta el siguiente comando en la terminal del clúster de Memorystore para Redis y reemplaza las variables por valores apropiados.

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    

    Aquí:

    • DISCOVERY_ENDPOINT_ADDRESS y PORT_NUMBER son los valores que anotaste en el paso anterior.
  5. Una vez conectado, ingresa algunos comandos de Redis:

    Ingrese:

    PING
    

    Resultado:

    PONG
    

    Ingresa:

    SET HELLO WORLD
    

    Resultado:

    OK
    

    Ingresa:

    GET HELLO
    

    Resultado:

    "WORLD"
    
  6. Una vez que termines de probar tu conexión a la instancia de Redis, debes considerar borrar la VM de Compute Engine que usaste para conectarte a la instancia de Redis. Esto te ayuda a evitar que se apliquen cargos a tu cuenta de Facturación de Cloud.

Conéctese a un clúster de Memorystore de forma segura mediante Stunnel y Telnet

En esta sección, se proporciona un ejemplo de cómo conectarse a una instancia de clúster de Memorystore para Redis que tiene habilitada la encriptación en tránsito mediante Stunnel.

  1. Si aún no tienes un clúster de Memorystore con la encriptación en tránsito habilitada, sigue los pasos que se indican en Crea una instancia con encriptación en tránsito para crear uno.

  2. Si aún no tienes una VM de Compute Engine que use la misma red autorizada que la instancia de Redis del paso anterior, crea una y conéctate a ella siguiendo la Guía de inicio rápido para usar una VM de Linux.

    1. Instala las herramientas necesarias para esta guía:

      sudo apt-get install stunnel4
      
      sudo apt-get install telnet
      
  3. Configura tu VM de Compute Engine para usarla con Stunnel:

    1. Crea un archivo nuevo para colocar la autoridad certificada (CA) mediante la ejecución del siguiente comando:

      sudo vim /tmp/server_ca.pem
      
    2. Para ver las autoridades certificadoras de tu instancia de Redis, ejecuta el siguiente comando en la terminal estándar que usas para administrar los recursos de Google Cloud (no la terminal de Compute Engine):

      gcloud alpha redis clusters get-cluster-certificate-authority  --cluster-id=CLUSTER_ID
      
    3. Copia todas las autoridades certificadas visibles, incluidas la línea -----BEGIN CERTIFICATE----- y las líneas -----END CERTIFICATE-----, y pega y guarda el contenido en el archivo server_ca.pem que creaste antes.

    4. Cree un nuevo archivo en el que colocará la información de configuración de Stunnel:

      sudo vim /etc/stunnel/redis-client.conf
      
    5. Pega el siguiente texto en el archivo y reemplaza DISCOVERY_ENDPOINT_ADDRESS por la dirección IP de extremo de conexión del servicio privado de tu clúster:

      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
      

      Inicia el túnel:

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

      Verifica que stunnel esté en ejecución:

      ps aux | grep stunnel
      
    6. Reinicia Stunnel:

      sudo systemctl restart stunnel4
      
  4. Para conectarte a tu instancia de Redis con Redis-CLI, ejecuta el siguiente comando:

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    
  5. Una vez conectado, ingresa algunos comandos de Redis:

    Ingrese:

    PING
    

    Resultado:

    PONG