Como se conectar a uma instância do Redis

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.

  1. Se você ainda não tiver 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.

  2. Instale telnet usando apt-get:

    sudo apt-get install telnet
    
  3. 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
    
  4. 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.

  1. 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.

  2. Instale redis-cli na VM do Compute Engine executando o seguinte comando no terminal SSH do Compute Engine:

    sudo apt-get install redis-server
    
  3. 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.

  4. 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 de faturamento 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.

  1. 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.

  2. Instale redis-cli na VM do Compute Engine executando o seguinte comando no terminal SSH do Compute Engine:

    sudo apt-get install redis-server
    
  3. Consiga a string AUTH de sua instância

  4. 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
    
  5. Execute os comandos SET e GET do Redis para verificar se você estabeleceu uma conexão autenticada com a instância.

  6. 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 de faturamento 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 criptografia em trânsito ativada usando stunnel.

  1. Se você ainda não tiver uma instância do Redis com criptografia em trânsito ativada, crie uma seguindo as instruções em Como criar uma instância do Redis com criptografia em trânsito.

  2. 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.

    1. Instale as ferramentas necessárias para este guia executando os seguintes comandos:

      sudo apt-get install stunnel4
      
      sudo apt-get install telnet
      
  3. Configure a VM do Compute Engine para uso com o stunnel:

    1. 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
      
    2. 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 redis instances describe instance-id --region=region
      

      Pode haver até três CAs.

    3. Copie todas as autoridades de certificação visíveis, incluindo a linha -----BEGIN CERTIFICATE----- e as linhas -----END CERTIFICATE-----, e cole e salve o arquivo server_ca.pem criado anteriormente.

    4. 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
      
    5. Reinicie o stunnel executando os seguintes comandos:

      sudo stunnel /etc/stunnel/redis-client.conf
      
      sudo systemctl restart stunnel4
      
  4. Para se conectar à instância do Redis usando o Telnet, execute o seguinte comando:

    telnet localhost 6378
    
  5. Na sessão Telnet, dê um ping na instância do Redis:

    Insira:

    PING
    

    Result:

    PONG
    

Como conectar-se de uma máquina local com encaminhamento de portas

Pode ser útil se conectar à instância do Redis a partir da máquina local durante o desenvolvimento. Para fazer isso, você precisa criar uma instância do Compute Engine, que será usada para encaminhar as portas para a instância do Redis.

  1. Crie uma instância do Compute Engine executando o seguinte comando:

    gcloud compute instances create NAME --machine-type=f1-micro --zone=ZONE
    

    Em que:

    • NAME é o nome designado para a VM do Compute Engine.
    • ZONE é a zona em que você quer provisionar a VM e precisa estar na mesma região da instância do Redis;

    Esse comando cria uma VM do Compute Engine com o tipo de máquina f1-micro para uma relação custo-benefício. Se quiser, escolha outros tipos de máquina.

  2. Abra um novo terminal na máquina local.

  3. Para criar um túnel SSH que encaminhe o tráfego por meio da VM do Compute Engine, execute o seguinte comando:

    gcloud compute ssh COMPUTE_VM_NAME --zone=ZONE -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379
    

    Em que:

    • COMPUTE_VM_NAME é o nome da VM do Compute Engine;
    • ZONE é a mesma zona em que a VM do Compute Engine está localizada.
    • REDIS_INSTANCE_IP_ADDRESS é o endereço IP da instância do Redis.
  4. Para testar a conexão, abra uma nova janela de terminal e execute o seguinte comando:

    redis-cli ping
    

    Se estiver funcionando corretamente, o resultado retornará:

    PONG
    

    Agora você está conectado à instância do Redis, e é possível enviar comandos para a instância do Redis usando esse túnel SSH aberto. Se você ainda não tiver instalado a redis-cli, instale-a para executar este comando.

  5. O túnel SSH permanece aberto enquanto você mantém a janela do terminal com a conexão do túnel SSH funcionando.

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

  1. Acesse a página do GKE no Console do Cloud.
    GKE
  2. 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 Como criar um cluster nativo de VPC.
  3. 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.
  4. 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.
    Você receberá a mensagem de conclusão: kubeconfig generated for CLUSTER_NAME
  5. 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: Para mais informações sobre aliases de IP, incluindo como criar um cluster com essa configuração ativada, consulte Como criar um cluster nativo de VPC.
  6. Use o seguinte comando para se conectar a um shell bash:
    kubectl run -i --tty busybox --image=busybox -- sh
  7. 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
  8. Digite um comando básico do Redis para verificar a conexão:
    PING
    +PONG
  9. 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 Como criar um cluster nativo de VPC.

  1. No canto superior direito do console, clique no botão Ativar o Google Cloud Shell Ativar o Cloud Shell.
  2. 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.
    Você receberá a mensagem de conclusão: kubeconfig generated for CLUSTER_NAME
  3. 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: Para mais informações sobre aliases de IP, incluindo como criar um cluster com essa configuração ativada, consulte Como criar um cluster nativo de VPC.
  4. 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
  5. Execute um comando redis-cli, substituindo HOST-IP pelo endereço IP do host da sua instância do Redis:
    redis-cli -h HOST-IP info
  6. 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
  7. 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: