Valkey: Utilizar com Ruby

Como ligar o Valkey ao Ruby

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

A Stackhero disponibiliza uma solução Valkey cloud pronta a usar, que oferece várias vantagens, incluindo:

  • Interface web Redis Commander incluída.
  • Tamanho e transferências de mensagens ilimitados.
  • Atualizações fáceis com apenas um clique.
  • Performance otimizada e segurança reforçada graças a uma infraestrutura privada e dedicada.

Poupe tempo e simplifique a sua vida: bastam 5 minutos para experimentar a solução Valkey cloud hosting da Stackhero!

Valkey é uma base de dados open-source, em memória, concebida para oferecer um desempenho excecional e grande flexibilidade. Resultante de um fork do Redis após este ter adotado uma licença mais restritiva, o Valkey apresenta-se como uma alternativa totalmente open-source. Garante compatibilidade total com as bibliotecas Redis, tornando-se assim uma excelente solução de substituição para projetos que dependiam anteriormente do Redis.

Frequentemente classificado como uma base de dados NoSQL, o Valkey suporta uma vasta gama de estruturas de dados, como strings, hashes, listas, sets e sorted sets, entre outras. Com operações de alta velocidade e capacidade para gerir grandes volumes de dados, o Valkey tornou-se uma escolha popular para casos de uso como cache, analytics em tempo real, sistemas de mensagens, entre outros.

O Valkey integra-se facilmente com Ruby e Ruby on Rails, potenciando o desempenho, a escalabilidade e a flexibilidade. Os programadores Ruby podem tirar partido do Valkey para implementar funcionalidades como cache, gestão de sessões, processamento de dados em tempo real e gestão de tarefas em background, entre outras.

Eis algumas formas comuns de utilização do Valkey com Ruby e Ruby on Rails:

  1. Cache: O Valkey pode funcionar como camada de cache em aplicações Rails, acelerando os tempos de resposta e reduzindo a carga sobre a base de dados.

  2. Processamento de tarefas em background: O Valkey pode ser utilizado como backend para bibliotecas populares de processamento de tarefas em background, como Sidekiq e Resque, melhorando o desempenho e a fiabilidade das tarefas em background nas aplicações Rails.

  3. Funcionalidades em tempo real: A funcionalidade Pub/Sub do Valkey permite que aplicações Rails ofereçam funcionalidades em tempo real, como notificações, sistemas de chat e analytics em tempo real, facilitando a passagem rápida e eficiente de mensagens entre componentes da aplicação.

A Stackhero disponibiliza uma solução Ruby cloud pronta a usar, que oferece várias vantagens, incluindo:

  • Implemente a sua aplicação em segundos com um simples git push.
  • Utilize o seu próprio domínio e beneficie da configuração automática de certificados HTTPS para maior segurança.
  • Desfrute de tranquilidade com backups automáticos, atualizações com um clique e uma tarifa simples, transparente e previsível.
  • Obtenha desempenho otimizado e segurança robusta graças a uma infraestrutura privada e dedicada.

Poupe tempo e simplifique a sua vida: bastam 5 minutos para experimentar a solução de alojamento Ruby cloud da Stackhero!

Para configurar o Valkey como sistema de cache em Ruby on Rails, siga estes passos:

  1. Instale a gem redis:
bundle add redis
  1. Edite o ficheiro config/environments/production.rb e adicione a seguinte configuração:
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
  1. Defina a variável de ambiente VALKEY_URL. Utilize um URL com o seguinte formato, substituindo <yourPassword> e <XXXXXX> pelas suas credenciais:
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

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

O Sidekiq utilizará automaticamente o servidor Valkey definido pela variável de ambiente REDIS_URL.

Pode definir a variável de ambiente REDIS_URL desta forma, apenas substituindo <password> e <XXXXXX> pela sua informação:

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

Por predefinição, o Sidekiq está configurado de modo a não tolerar perturbações na rede. Para melhorar esta situação, sugerimos que altere a configuração do cliente Sidekiq em config/initializers/sidekiq.rb para aumentar a estabilidade:

# Ficheiro config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # Definir o timeout para 5 segundos
    pool_timeout: 5, # Definir o timeout para 5 segundos
    reconnect_attempts: Array.new(240, 0.5) # Tentar reconectar 240 vezes, a cada 0,5 segundos (120 segundos/2 minutos no total) antes de lançar um erro
  }
end

Esta configuração garante que, se o seu servidor Valkey ficar indisponível, o cliente tentará reconectar durante 2 minutos antes de apresentar um erro. Isto permite, por exemplo, que o servidor Valkey reinicie. Dependendo da utilização do Sidekiq na sua aplicação, pode ajustar este parâmetro para melhor se adequar às suas necessidades específicas.

Para mais informações sobre o Sidekiq e o Valkey, consulte a documentação oficial aqui.

Para utilizar o Valkey com o Resque, defina a variável de ambiente REDIS_URL da seguinte forma, substituindo <yourPassword> e <XXXXXX> pelas suas credenciais:

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

O Resque utilizará automaticamente o servidor Valkey especificado na variável de ambiente REDIS_URL.

Para mais informações sobre a utilização do Resque com o Valkey, consulte a documentação do Resque aqui.