Nesta página, você aprende como se conectar a uma instância do Redis usando o Compute Engine e o Google Kubernetes Engine. Ela também fornece instruções para testar comandos básicos do Redis com o Telnet.
Para uma lista dos ambientes do Google Cloud compatíveis com o Memorystore para Redis, consulte Ambientes compatíveis. Alguns ambientes sem servidor compatíveis com o Memorystore exigem um conector de acesso VPC sem servidor. Consulte Requisitos do conector de acesso VPC sem servidor para mais detalhes.
Como se conectar a uma instância do Redis a partir de uma VM do Compute Engine usando telnet
É possível conectar-se à instância do Redis a partir de qualquer instância de VM do Compute Engine localizada no mesmo projeto, região e rede que a instância do Redis.
Se você ainda não tem uma VM do Compute Engine no mesmo projeto, região e rede que sua instância 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
telnet
usandoapt-get
:sudo apt-get install telnet
A partir do terminal, use o telnet para acessar o endereço IP da instância do Redis, substituindo variables pelos valores apropriados.
telnet instance-ip-address 6379
Se for bem-sucedido, o comando retornará este resultado:
Trying instance-ip-address… Connected to instance-ip-address
Na sessão telnet, digite alguns comandos do Redis:
Insira:
PING
Result:
PONG
Enter
SET HELLO WORLD
Result:
+OK
Insira:
GET HELLO
Result:
$5 WORLD
Como se conectar a uma instância do Redis a partir de uma VM do Compute Engine usando redis-cli
É possível conectar-se à instância do Redis a partir de qualquer instância de VM do Compute Engine localizada no mesmo projeto, região e rede que a instância do Redis.
Se você ainda não tem uma VM do Compute Engine no mesmo projeto, região e rede que sua instância 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
redis-cli
na VM do Compute Engine executando o seguinte comando no terminal SSH do Compute Engine:sudo apt-get install redis-server
Execute o seguinte comando no terminal do Compute Engine, substituindo variables pelos valores apropriados.
redis-cli -h redis-instance-ip-address
Agora você está conectado à instância do Redis usando
redis-cli
.Após concluir o teste de conexão com a instância 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 Google Cloud.
Como se conectar a uma instância do Redis que usa o AUTH
Nesta seção, descrevemos como se conectar a uma instância do Redis que tem o recurso AUTH ativado.
Se você ainda não tem uma VM do Compute Engine no mesmo projeto, região e rede que sua instância 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
redis-cli
na VM do Compute Engine executando o seguinte comando no terminal SSH do Compute Engine:sudo apt-get install redis-server
Consiga a string AUTH de sua instância
Execute o seguinte comando e use
redis-cli
para autenticar e se conectar à instância, substituindo variables pelos valores apropriados:redis-cli -h instance-ip-address -a auth-string
Ou:
redis-cli -h instance-ip-address AUTH auth-string
Execute os comandos
SET
eGET
do Redis para verificar se você estabeleceu uma conexão autenticada com a instância.Após concluir o teste de conexão com a instância 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 Google Cloud.
Como se conectar a uma instância do Redis com segurança usando stunnel e telnet
Nesta seção, você verá um exemplo de como se conectar a uma instância do Redis com o TLS ativado usando o stunnel.
Se você ainda não tiver uma instância do Redis com o TLS ativado, crie uma seguindo Como criar uma instância do Redis com o TLS.
Se você ainda não tiver uma VM do Compute Engine na mesma região, projeto e rede que a 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 um Linux VM.
Instale as ferramentas necessárias para este guia executando os seguintes comandos:
sudo apt-get install stunnel4
sudo apt-get install telnet
Configure a VM do Compute Engine para uso com o stunnel:
Crie um novo arquivo para colocar a Autoridade de certificação (CA, na sigla em inglês) executando o seguinte comando:
sudo vim /tmp/server_ca.pem
Visualize as autoridades de certificação da instância do Redis executando o seguinte comando no terminal padrão que você usa para gerenciar os recursos do Google Cloud, e não o terminal do Compute Engine:
gcloud beta redis instances describe instance-id --region=region
Pode haver até três CAs.
Copie todas as autoridades de certificação visíveis, incluindo a linha
-----BEGIN CERTIFICATE-----
e as linhas-----END CERTIFICATE-----
, e cole e salve o arquivoserver_ca.pem
criado anteriormente.Faça o seguinte comando para colocar as informações de configuração do stunnel executando o seguinte comando:
sudo vim /etc/stunnel/redis-client.conf
Cole o seguinte texto no arquivo, substituindo redis-instance-ip pelo endereço IP da instância do Redis:
output=/tmp/stunnel.log CAfile=/tmp/server_ca.pem client=yes pid=/var/run/stunnel.pid verifyChain=yes sslVersion=TLSv1.2 [redis] accept=127.0.0.1:6378 connect=redis-instance-ip:6378
Reinicie o stunnel executando os seguintes comandos:
sudo stunnel /etc/stunnel/redis-client.conf
sudo systemctl restart stunnel4
Para se conectar à instância do Redis usando o Telnet, execute o seguinte comando:
telnet localhost 6378
Na sessão Telnet, dê um ping na instância do Redis:
Insira:
PING
Result:
PONG
Como se conectar a uma instância do Redis a partir de um cluster do Google Kubernetes Engine
É possível conectar-se às instâncias do Redis a partir dos clusters do Google Kubernetes Engine que estão na mesma região e utilizam a mesma rede dessas instâncias.
Como se conectar a partir de um pod, executando um shell bash
- Acesse a página do GKE no Console do Cloud.
GKE - Clique no cluster do GKE em que você gostaria de se conectar. Se você ainda não tiver um, crie-o na mesma zona e região da sua instância do Redis com os aliases de IP ativados. Para instruções sobre como criar um cluster com aliases de IP ativados, consulte a documentação sobre aliases de IP.
- Clique no botão Conectar, à direita do nome do cluster e, em seguida, clique no botão Executar no Cloud Shell, na janela que aparece.
- Use o comando a seguir para configurar o acesso de linha de comando
kubectl
:gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_ZONE --project=PROJECT_ID
CLUSTER_NAME
é o nome do cluster;CLUSTER_ZONE
é a zona em que o cluster está. É preciso que seja também a zona em que está a instância do Redis.PROJECT_ID
é o projeto em que estão o cluster e as instâncias do Redis.
kubeconfig generated for CLUSTER_NAME
- Se a versão do seu cluster for 1.8 ou superior e tiver aliases de IP ativados, pule esta etapa. Se a versão do seu cluster for 1.7 ou inferior, ou se o cluster da versão 1.8 ou superior não tiver aliases de IP ativados, siga estas etapas de solução alternativa, antes de tentar se conectar à sua instância: Documentação de aliases de IP. Para mais informações sobre aliases de IP, incluindo como criar um cluster com essa configuração ativada, consulte a
- Use o seguinte comando para se conectar a um shell bash:
kubectl run -i --tty busybox --image=busybox -- sh
- Use o Telnet para a instância do Redis usando o endereço do host e o número da porta:
telnet HOST-IP PORT
- Digite um comando básico do Redis para verificar a conexão:
PING +PONG
- Para fechar a conexão telnet, pressione Control+C (ou Command+C no Mac). Para sair do shell bash no seu pod, insira "return". Se você tiver terminado e não precisar mais se conectar ao Redis, execute o seguinte comando no diretório
/k8s-custom-iptables/
:./uninstall.sh
Como se conectar a uma instância do Redis a partir de um pod do Google Kubernetes Engine
Antes de começar, é preciso ter um cluster do GKE. Se você ainda não tiver um, crie-o na mesma zona e região da sua instância do Redis, com os aliases de IP ativados. Para instruções sobre como criar um cluster com aliases de IP ativados, consulte a documentação sobre aliases de IP.
- No canto superior direito do console, clique no botão Ativar o Google Cloud Shell
.
- Use o comando a seguir para configurar o acesso de linha de comando
kubectl
:gcloud container clusters get-credentials CLUSTER_NAME --zone CLUSTER_ZONE --project PROJECT_ID
CLUSTER_NAME
é o nome do cluster;CLUSTER_ZONE
é a zona em que o cluster está. É preciso que seja também a zona em que está a instância do Redis.PROJECT_ID
é o projeto em que estão o cluster e as instâncias do Redis.
kubeconfig generated for CLUSTER_NAME
- Se a versão do seu cluster for 1.8 ou superior e tiver aliases de IP ativados, pule esta etapa. Se a versão do seu cluster for 1.7 ou inferior, ou se o cluster da versão 1.8 ou superior não tiver aliases de IP ativados, siga estas etapas de solução alternativa, antes de tentar se conectar à sua instância: Documentação de aliases de IP. Para mais informações sobre aliases de IP, incluindo como criar um cluster com essa configuração ativada, consulte a
- Use o seguinte comando para iniciar um pod do Redis executando o
redis-cli
:kubectl run -i --tty redisbox --image=gcr.io/google_containers/redis:v1 -- sh
- Execute um comando
redis-cli
, substituindoHOST-IP
pelo endereço IP do host da sua instância do Redis:redis-cli -h HOST-IP info
- Como opção, execute um comando comparativo de mercadodo Redis, substituindo
HOST-IP
pelo endereço IP do host da sua instância do Redis:redis-benchmark -c 100 -n 100000 -d 1024 -r 100000 -t PING,SET,GET,INCR,LPUSH,RPUSH,LPOP,RPOP,SADD,SPOP,MSET -h HOST-IP -q
- Para sair do pod do Redis, digite
return
. Se você tiver terminado e não precisar mais se conectar ao Redis, execute o seguinte comando no diretório/k8s-custom-iptables/
:./uninstall.sh
A seguir
Conecte-se à sua instância do Redis usando um aplicativo de amostra, que é executado em:
- Compute Engine
- GKE
- Cloud Run (totalmente gerenciado)
- Ambiente padrão do App Engine
- Ambiente flexível do App Engine
- Cloud Functions