Nesta página, explicamos como se conectar a uma instância do Memorystore for Redis Cluster.
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. Para mais informações sobre as bibliotecas de cliente compatíveis com o Redis, consulte Clientes de conexão compatíveis.
Prática recomendada do cliente redis-py
Para se conectar à instância do Memorystore for Redis Cluster 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
Cada cluster tem um endpoint de descoberta a que seu 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 for Redis Cluster usando o console do Google Cloud ou a CLI gcloud.
Console
Acesse a página Memorystore para Redis Cluster no console Google Cloud .
Clique no ID do cluster.
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 Memorystore for 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.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.
Execute o comando
CLUSTER SHARDSpara ver 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ó que você encontrou na etapa anterior.
- NODE_PORT é o número da porta do nó que você encontrou 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 a criptografia em trânsito ativada
Nesta seção, você verá 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 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.
- 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
Verifique o modo de autoridade certificadora (CA) que você está usando no cluster.
Se o modo de CA for por instância, instale os certificados de CA do cluster seguindo as instruções em Instalar certificados de CA no cliente.
Se o modo de CA for compartilhado, instale o pacote de certificados de CA do cluster seguindo as instruções em Instalar o pacote de certificados de CA no cliente.
Se o modo da AC for gerenciado pelo cliente, seus aplicativos poderão se conectar ao cluster sem que você precise baixar e instalar outros certificados. Portanto, você pode pular esta etapa.
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.
Execute o comando
CLUSTER SHARDSpara ver 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ó que você encontrou na etapa anterior.
- NODE_PORT é o número da porta do nó que você encontrou na etapa anterior.
Depois de se conectar ao nó, insira alguns comandos do Redis:
Insira o seguinte:
PING
Resultado:
PONG