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

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

Suporte ao cliente

O Memorystore para Redis Cluster não fornece bibliotecas de cliente próprias, mas é compatível com bibliotecas de cliente de terceiros que oferecem suporte ao protocolo Redis. Uma lista de clientes de exemplo pode ser encontrada na página Clientes do Redis.

Prática recomendada do cliente redis-py

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

Adicionar portas à lista de permissões no firewall

Se você não colocar 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 adicionar portas à lista de permissões, 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 da instância do Memorystore.

Ver o endpoint de descoberta do cluster

Para conferir o endpoint de descoberta do cluster do Memorystore, siga estas instruções:

Console

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

    Memorystore for Redis Cluster

  2. Clique no ID do cluster.

  3. Na seção Conectar-se 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 CLI gcloud describe conforme explicado na seção Ver 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 de uma VM do Compute Engine usando redis-cli

É possível se conectar à instância do cluster do Memorystore para Redis 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 use 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 e anote o endpoint de descoberta do cluster.

  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 anotados 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ó que você encontrou na etapa anterior.
    • NODE_PORT é o número da porta do nó que você encontrou 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 a criptografia em trânsito ativada

Nesta seção, você vai encontrar 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 do Redis da etapa anterior, 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. Instale a autoridade de certificação da instância na VM do Linux seguindo as instruções em Instalar autoridades de certificação no cliente.

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

  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 anotados 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ó que você encontrou na etapa anterior.
    • NODE_PORT é o número da porta do nó que você encontrou na etapa anterior.
  7. Depois de se conectar ao nó, insira alguns comandos do Redis:

    Insira o seguinte:

    PING
    

    Resultado:

    PONG