Redis®*: Introdução

Guia rápido para começar com Redis

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução Redis cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Interface web Redis Commander incluída.
  • Tamanho e transferências de mensagens ilimitados.
  • Atualizações simplificadas com apenas um clique.
  • Desempenho ótimo e segurança robusta garantidos por uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: são necessários apenas 5 minutos para experimentar a solução de hospedagem Redis cloud da Stackhero!

Redis é uma base de dados em memória poderosa e incrivelmente rápida que serve para múltiplos propósitos. Pode atuar como um sistema de cache, um armazenamento chave-valor, facilitar a ordenação de dados em tempo real e funcionar como uma fila de publicação-assinatura e sistema de eventos.

aviso O Redis mudou a sua licença e já não é open source. A comunidade, desenvolvedores e empresas criaram um fork do Redis chamado Valkey, que é um substituto direto do Redis. Recomendamos usar o Valkey em vez do Redis.

Para ajudar a começar, partilhámos alguns exemplos de código que demonstram como conectar-se a uma instância Redis. Pode encontrar estes exemplos no seguinte repositório GitHub: https://github.com/stackhero-io/redisGettingStarted.

Para começar, pode querer instalar a gem "redis". Pode fazer isso executando:

bundle add redis

Em seguida, abra o ficheiro config/environments/production.rb e adicione a seguinte linha:

config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'] }

Finalmente, defina a variável de ambiente REDIS_URL. Aqui está um modelo que pode usar substituindo pelos seus detalhes:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

aviso Por padrão, o cache está ativado apenas no ambiente de produção. Se desejar testar o cache durante o desenvolvimento, pode editar o ficheiro config/environments/development.rb. Adicione a configuração acima e inclua config.action_controller.perform_caching = true para ativar o cache. Uma maneira simples de verificar se o cache está a funcionar é iniciar uma consola Rails (com bin/rails console) e testar escrevendo Rails.cache.write("foo", "bar").

Para mais detalhes sobre a configuração do Redis como sistema de cache para Ruby on Rails, consulte a documentação oficial do Rails.

O Sidekiq utilizará automaticamente o servidor Redis especificado na variável de ambiente REDIS_URL.

Pode definir a variável de ambiente REDIS_URL com as suas informações específicas da seguinte forma:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Para mais informações sobre o uso do Sidekiq com Redis, consulte a documentação oficial do Sidekiq.

O Resque, tal como o Sidekiq, usará o servidor Redis definido na variável de ambiente REDIS_URL.

Defina o REDIS_URL com os seus detalhes da seguinte forma:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Para mais informações sobre o uso do Resque com Redis, por favor visite a documentação oficial do Resque.

Pode usar o seguinte código para armazenar sessões PHP no Stackhero para Redis:

<?php

// Analisar URL do Redis
$redis_url = parse_url('rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>');

// Configurar o gestor de sessões
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', "tls://{$redis_url['host']}:{$redis_url['port']}?auth={$redis_url['pass']}&timeout=5");

// Iniciar a sessão
session_start();

?>

Para garantir que a sua instância Redis é segura, é crucial implementar certas medidas de segurança.

Por padrão, o Redis não encripta comunicações. No entanto, no Stackhero, incorporámos a encriptação TLS por padrão.

Para tirar proveito disso, configure o seu cliente Redis para usar encriptação TLS e conecte-se à sua instância através da porta <PORT_TLS>. Evite usar <PORT_CLEAR>, pois não encripta os dados.

A melhor parte é que não há mais nada que precise fazer do seu lado, nós cuidámos da configuração complexa.

A sua instância Redis está protegida com uma palavra-passe, que o Stackhero define automaticamente para um padrão altamente seguro. Se optar por alterá-la, certifique-se de escolher uma palavra-passe extremamente complexa.

O Redis é altamente eficiente, mas não possui proteções integradas contra ataques de força bruta, permitindo que um atacante teste potencialmente até 150.000 combinações de palavras-passe por segundo.

Para contrariar este risco, impomos um comprimento mínimo de palavra-passe de 16 caracteres (oferecendo aproximadamente 4.5231285e+74 combinações). Por padrão, usamos uma palavra-passe de 64 caracteres (oferecendo cerca de 9.61963e+111 combinações).

Para maior segurança e para reduzir significativamente o risco de ataques de força bruta, é altamente recomendado configurar as definições de firewall do Stackhero (encontradas na aba "Firewall") para limitar as conexões estritamente aos seus endereços IP. Este passo é essencial para melhorar a sua postura de segurança.