Conectar-se a uma instância do Memorystore para Redis Cluster

Nesta página, explicamos como se conectar a uma instância do Memorystore para Redis Cluster.

Suporte ao cliente

O Memorystore for Redis Cluster não oferece as próprias bibliotecas de cliente, mas oferece suporte a bibliotecas de cliente de terceiros que oferecem suporte ao protocolo Redis. Para mais informações sobre as bibliotecas de cliente com suporte do Redis, consulte Clientes de conexão com suporte.

Prática recomendada do cliente redis-py

Para se conectar à instância do Memorystore para Redis Cluster usando o cliente Python redis-py, adicione skip_full_coverage_check=True ao declarar um cluster do 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'))

Permitir portas na lista de permissões do firewall

Se você não permitir as portas corretas na lista de permissões do firewall, a instância poderá encontrar erros de conexão. Para mais informações sobre como permitir portas, consulte Resolver problemas.

Acesso entre regiões

É possível acessar uma instância do Memorystore para Redis Cluster de um cliente localizado em uma região diferente daquela em que a instância do Memorystore está localizada.

Conferir o endpoint de descoberta do cluster

Cada cluster tem um endpoint de descoberta ao qual o cliente se conecta. Esse endpoint é uma combinação de um endereço IP e um número de porta.

É possível conferir o endpoint de descoberta de um cluster no Memorystore para Redis Cluster usando o console do Google Cloud ou a CLI gcloud.

Console

  1. Acesse a página Memorystore para Redis Cluster no Google Cloud console.

    Memorystore para Redis Cluster

  2. Clique no ID do cluster.

  3. Na seção Conectar a esta instância, anote o endereço IP e o número da porta ao lado de Endpoint de descoberta. Esses dois valores usados juntos são o endpoint de descoberta do cluster.

gcloud

Para conferir o endpoint de descoberta do cluster, execute a describe CLI gcloud, conforme explicado na seção Conferir detalhes da instância.

A saída será semelhante a esta:

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

Anote o endereço do endpoint e o número da porta listados na seção discovery_endpoints:. Esses dois valores usados juntos são o endpoint de descoberta do cluster.

Conectar-se a uma VM do Compute Engine usando redis-cli

É possível se conectar à instância do Memorystore para Redis Cluster de qualquer VM do Compute Engine que use a rede autorizada da instância do Memorystore.

Para se conectar à instância:

  1. Se você ainda não tem uma VM do Linux no Compute Engine que usa a rede autorizada para sua instância do Memorystore para Redis Cluster, crie uma e conecte-se a ela seguindo o Guia de início rápido para criar uma VM do Linux.

  2. Instale a versão 6.0 ou mais recente do redis-cli na VM do Compute Engine seguindo as instruções em Instalar o Redis no Linux.

  3. Confira o endpoint de descoberta do cluster e anote-o.

  4. Conecte-se ao endpoint de descoberta da instância executando o seguinte comando:

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    

    Em que:

    • DISCOVERY_ENDPOINT_ADDRESS e PORT_NUMBER são os valores que você anotou na etapa anterior.
  5. Execute o comando CLUSTER SHARDS para conferir a topologia do cluster. Anote um dos endereços IP e números de porta do nó.

  6. Conecte-se ao nó desejado executando o seguinte comando:

    redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
    

    Substitua:

    • NODE_IP_ADDRESS é o endereço IP do nó encontrado na etapa anterior.
    • NODE_PORT é o número da porta do nó encontrado na etapa anterior.
  7. Depois de se conectar ao nó, insira alguns comandos do Redis:

    Insira o seguinte:

    PING
    

    Result:

    PONG
    

    Enter

    SET HELLO WORLD
    

    Result:

    OK
    

    Insira o seguinte:

    GET HELLO
    

    Resultado:

    "WORLD"
    
  8. Após concluir o teste de conexão com o nó do Redis, exclua a VM do Compute Engine usada para se conectar à instância do Redis. Isso ajuda a evitar cobranças na sua conta do Cloud Billing.

Conectar-se a uma instância com criptografia em trânsito ativada

Esta seção fornece um exemplo de como se conectar a uma instância do Memorystore para Redis Cluster com a criptografia em trânsito ativada.

  1. Se você ainda não tem uma VM do Compute Engine que use a mesma rede autorizada da instância anterior do Redis, crie uma e conecte-se a ela seguindo o Guia de início rápido sobre como usar uma VM do Linux.

    1. Instale a versão 6.0 ou mais recente do redis-cli na VM do Compute Engine seguindo as instruções em Instalar o Redis no Linux.
  2. Confira o modo da autoridade de certificação (AC) que você está usando para o cluster.

  3. Confira o endpoint de descoberta do cluster e anote-o.

  4. Conecte-se ao endpoint de descoberta da instância executando o seguinte comando:

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls  --cacert /tmp/server_ca.pem
    

    Em que:

    • DISCOVERY_ENDPOINT_ADDRESS e PORT_NUMBER são os valores que você anotou na etapa anterior.
  5. Execute o comando CLUSTER SHARDS para conferir a topologia do cluster. Anote um dos endereços IP e números de porta do nó.

  6. Conecte-se ao nó desejado executando o seguinte comando:

    redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c --tls  --cacert /tmp/server_ca.pem
    

    Substitua:

    • NODE_IP_ADDRESS é o endereço IP do nó encontrado na etapa anterior.
    • NODE_PORT é o número da porta do nó encontrado na etapa anterior.
  7. Depois de se conectar ao nó, insira alguns comandos do Redis:

    Insira o seguinte:

    PING
    

    Resultado:

    PONG