Estabeleça ligação a uma instância do Memorystore for Redis Cluster

Esta página explica como estabelecer ligação a uma instância do Memorystore for Redis Cluster.

Apoio técnico ao cliente

O Memorystore for Redis Cluster não fornece as suas próprias bibliotecas cliente, mas suporta bibliotecas cliente de terceiros existentes que suportam o protocolo Redis. Pode encontrar uma lista de clientes de exemplo na página Clientes do Redis.

Prática recomendada do cliente Redis-py

Para estabelecer ligação à sua instância do Memorystore for Redis Cluster através do cliente Python redis-py, tem de adicionar o skip_full_coverage_check=True quando declarar um Redis Cluster:

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

Adicione portas à lista de autorizações na firewall

Se não adicionar as portas corretas à lista de autorizações na firewall, a instância pode ter erros de ligação. Para mais informações sobre a inclusão de portas na lista de autorizações, consulte o artigo Resolva problemas.

Acesso entre regiões

Pode aceder a uma instância do Memorystore for Redis Cluster a partir de um cliente localizado numa região diferente da região onde a instância do Memorystore está localizada.

Veja o ponto final de descoberta do cluster

Para ver o ponto final de deteção do cluster do Memorystore, siga estas instruções:

Consola

  1. Aceda à página Memorystore for Redis Cluster na Google Cloud consola.

    Memorystore for Redis Cluster

  2. Clique no ID do cluster.

  3. Na secção Estabelecer ligação a esta instância, tome nota do endereço IP e do número da porta junto a Ponto final de deteção. Estes dois valores usados em conjunto são o ponto final de deteção do cluster.

gcloud

Para ver o ponto final de deteção do cluster, execute a CLI gcloud, conforme explicado na secção Veja os detalhes da instância.describe

O resultado deve ser semelhante ao seguinte:

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

Tome nota do endereço do ponto final e do número da porta indicados na secção discovery_endpoints:. Estes dois valores usados em conjunto são o ponto final de descoberta do cluster.

Estabeleça ligação a partir de uma VM do Compute Engine através do redis-cli

Pode estabelecer ligação à instância do Memorystore for Redis Cluster a partir de qualquer VM do Compute Engine que use a rede autorizada da instância do Memorystore.

Para estabelecer ligação à instância:

  1. Se ainda não tiver uma VM do Compute Engine Linux que use a rede autorizada para a sua instância do Memorystore for Redis Cluster, crie uma e estabeleça ligação à mesma seguindo o Início rápido para criar uma VM Linux.

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

  3. Veja o ponto final de deteção do cluster e tome nota do mesmo.

  4. Ligue-se ao ponto final de deteção da sua instância executando o seguinte comando:

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    

    Onde:

    • DISCOVERY_ENDPOINT_ADDRESS e PORT_NUMBER são os valores que anotou no passo anterior.
  5. Execute o comando CLUSTER SHARDS para ver a topologia do cluster. Tome nota de um dos endereços IP e números de porta do nó.

  6. Estabeleça ligação ao nó pretendido executando o seguinte comando:

    redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
    

    Substitua o seguinte:

    • NODE_IP_ADDRESS é o endereço IP do nó que encontrou no passo anterior.
    • NODE_PORT é o número da porta do nó que encontrou no passo anterior.
  7. Depois de estabelecer ligação ao nó, introduza alguns comandos Redis:

    Introduza:

    PING
    

    Resultado:

    PONG
    

    Enter

    SET HELLO WORLD
    

    Resultado:

    OK
    

    Introduza:

    GET HELLO
    

    Resultado:

    "WORLD"
    
  8. Quando terminar de testar a ligação ao nó Redis, deve considerar eliminar a VM do Compute Engine que usou para se ligar à instância do Redis. Desta forma, evita incorrer em cobranças na sua conta de faturação do Google Cloud.

Estabeleça ligação a uma instância com encriptação em trânsito ativada

Esta secção fornece um exemplo de como estabelecer ligação a uma instância do Memorystore for Redis Cluster que tenha a encriptação em trânsito ativada.

  1. Se ainda não tiver uma VM do Compute Engine que use a mesma rede autorizada que a instância do Redis do passo anterior, crie uma e estabeleça ligação à mesma seguindo o Início rápido com uma VM do Linux.

    1. Instale a redis-cli versão 6.0 ou mais recente na VM do Compute Engine seguindo as instruções em Instale o Redis no Linux.
  2. Instale a autoridade de certificação da sua instância na VM Linux seguindo as instruções em Instale autoridades de certificação no seu cliente.

  3. Veja o ponto final de deteção do cluster e tome nota do mesmo.

  4. Ligue-se ao ponto final de deteção da sua instância executando o seguinte comando:

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

    Onde:

    • DISCOVERY_ENDPOINT_ADDRESS e PORT_NUMBER são os valores que anotou no passo anterior.
  5. Execute o comando CLUSTER SHARDS para ver a topologia do cluster. Tome nota de um dos endereços IP e números de porta do nó.

  6. Estabeleça ligação ao nó pretendido executando o seguinte comando:

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

    Substitua o seguinte:

    • NODE_IP_ADDRESS é o endereço IP do nó que encontrou no passo anterior.
    • NODE_PORT é o número da porta do nó que encontrou no passo anterior.
  7. Depois de estabelecer ligação ao nó, introduza alguns comandos Redis:

    Introduza:

    PING
    

    Resultado:

    PONG