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
Acesse a página Memorystore para Redis Cluster no Google Cloud console.
Clique no ID do cluster.
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:
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.
Instale a versão 6.0 ou mais recente do
redis-clina VM do Compute Engine seguindo as instruções em Instalar o Redis no Linux.Confira o endpoint de descoberta do cluster e anote-o.
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.
Execute o comando
CLUSTER SHARDSpara conferir a topologia do cluster. Anote um dos endereços IP e números de porta do nó.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.
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"
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.
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.
- Instale a versão 6.0 ou mais recente do
redis-clina VM do Compute Engine seguindo as instruções em Instalar o Redis no Linux.
- Instale a versão 6.0 ou mais recente do
Confira o modo da autoridade de certificação (AC) que você está usando para o cluster.
Se o modo de AC for por instância, instale os certificados de AC do cluster seguindo as instruções em Instalar certificados de AC no cliente.
Se o modo de AC for compartilhado, então instale o pacote de certificados de AC do cluster seguindo as instruções em Instalar o pacote de certificados de AC no cliente.
Se o modo de AC for gerenciado pelo cliente, os aplicativos poderão se conectar ao cluster sem que você precise baixar e instalar outros certificados de AC. Portanto, você pode pular esta etapa.
Confira o endpoint de descoberta do cluster e anote-o.
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.
Execute o comando
CLUSTER SHARDSpara conferir a topologia do cluster. Anote um dos endereços IP e números de porta do nó.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.
Depois de se conectar ao nó, insira alguns comandos do Redis:
Insira o seguinte:
PING
Resultado:
PONG