Valkey: Introdução

Guia rápido para começar com Valkey

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

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

  • Interface web UI Redis Commander incluída.
  • Tamanho e transferências de mensagens ilimitados.
  • Atualizações simplificadas com apenas um clique.
  • Desempenho ótimo e segurança robusta alimentados 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 Valkey cloud hosting da Stackhero!

Valkey é uma base de dados em memória poderosa e incrivelmente rápida, baseada no Redis. À medida que o Redis se afastou do modelo de código aberto, o Valkey surgiu da comunidade e de várias empresas como uma alternativa robusta de código aberto. Integra-se perfeitamente com as bibliotecas Redis, tornando-se uma substituição ideal.

Valkey é versátil, servindo para múltiplos propósitos: pode funcionar como um sistema de cache, uma base de dados chave/valor, facilitar a ordenação de dados em tempo real ou atuar como uma fila de publicação/assinatura semelhante a um sistema de eventos.

Para ajudá-lo a conectar-se a uma instância Valkey, preparamos alguns exemplos de código. Sinta-se à vontade para explorá-los no seguinte repositório Git: https://github.com/stackhero-io/valkeyGettingStarted.

Para começar, pode instalar a gem redis com este comando:

bundle add redis

Em seguida, abra o ficheiro config/environments/production.rb e inclua esta linha:

config.cache_store = :redis_cache_store, { url: ENV["VALKEY_URL"] }

Depois, precisará definir a variável de ambiente VALKEY_URL. Aqui está um exemplo de como pode formatar o URL com as suas informações:

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

Por padrão, o cache só está ativado no ambiente de produção. Se desejar testar o cache em desenvolvimento, modifique o ficheiro config/environments/development.rb adicionando a configuração acima e defina config.action_controller.perform_caching = true para ativar o cache. Uma boa maneira de verificar se o cache funciona é iniciar uma consola Rails (usando bin/rails console) e testar a escrita com Rails.cache.write("foo", "bar").

Para mais informações detalhadas sobre a configuração do Valkey como sistema de cache para Ruby on Rails, pode consultar a documentação oficial do Rails aqui.

O Sidekiq usará automaticamente o servidor Valkey configurado na variável de ambiente REDIS_URL.

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

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

Para mais informações sobre o uso do Sidekiq com Valkey, pode consultar a documentação oficial aqui.

O Resque usará automaticamente o servidor Valkey definido na variável de ambiente REDIS_URL.

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

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

Para informações adicionais sobre o uso do Resque com Valkey, pode consultar a documentação oficial aqui.

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

<?php

// Analisar URL do Valkey
$valkey_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://{$valkey_url['host']}:{$valkey_url['port']}?auth={$valkey_url['pass']}&timeout=5");

// Iniciar a sessão
session_start();

?>

Reforçar a segurança da sua configuração Valkey é crucial. Aqui estão duas medidas importantes que pode implementar para maximizar a segurança.

Por padrão, o Valkey não encripta comunicações. No entanto, no Stackhero, a encriptação TLS é fornecida de forma padrão.

Para aproveitar esta funcionalidade, basta configurar o seu cliente Valkey para usar encriptação TLS e conectar-se à sua instância usando a porta <PORT_TLS>, em vez da porta não encriptada <PORT_CLEAR>.

A boa notícia é que não precisa se preocupar com configurações adicionais, nós preparamos tudo para si.

A sua instância Valkey está protegida com uma palavra-passe forte, automaticamente predefinida pelo Stackhero. Se decidir alterá-la, certifique-se de que a palavra-passe seja extremamente complexa.

Valkey é rápido e, infelizmente, não possui proteção integrada contra ataques de força bruta. Um atacante poderia potencialmente tentar até 150.000 combinações de palavras-passe por segundo.

Para mitigar isso, as palavras-passe devem ter pelo menos 16 caracteres (4.5231285e+74 possibilidades), e por padrão, definimos uma palavra-passe de 64 caracteres (9.61963e+111 possibilidades!).

Para maior segurança e para contrariar eficazmente as tentativas de força bruta, é aconselhável configurar o firewall do Stackhero (acessível na aba "Firewall") para restringir as conexões apenas aos seus endereços IP. Este é um passo crítico que reforçará significativamente a sua segurança!