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 Commanderincluí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.
Usar Redis com Ruby e Ruby on Rails
Configurar o Redis como sistema de cache para Ruby on Rails
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 incluaconfig.action_controller.perform_caching = truepara ativar o cache. Uma maneira simples de verificar se o cache está a funcionar é iniciar uma consola Rails (combin/rails console) e testar escrevendoRails.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.
Configurar Redis para Sidekiq
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.
Configurar Redis para Resque
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.
Gerir sessões PHP com Redis
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();
?>
Melhorar a segurança do Redis
Para garantir que a sua instância Redis é segura, é crucial implementar certas medidas de segurança.
Encriptar comunicações com Redis (TLS)
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.
Proteger o Redis contra ataques de força bruta
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.