Redis®*: Utilizar com Ruby

Como conectar o Redis com Ruby

👋 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, que significa Remote Dictionary Server, é uma base de dados open-source em memória que oferece desempenho e flexibilidade excepcionais.

Frequentemente referida como uma base de dados NoSQL, o Redis suporta uma ampla gama de estruturas de dados como strings, hashes, listas, conjuntos e conjuntos ordenados, entre outros. Com suas operações de alta velocidade e capacidade de lidar com grandes quantidades de dados, o Redis tornou-se uma escolha popular para caching, análises em tempo real, mensagens e vários outros casos de uso.

O Redis pode ser integrado de forma perfeita com Ruby e Ruby on Rails para melhorar o desempenho, escalabilidade e flexibilidade. Ao aproveitar o Redis, os desenvolvedores Ruby podem implementar várias funcionalidades como caching, gestão de sessões, processamento de dados em tempo real e processamento de tarefas em segundo plano, entre outros.

Aqui estão algumas formas comuns de usar o Redis com Ruby e Ruby on Rails:

  1. Caching: O Redis pode ser utilizado como um armazenamento de cache em aplicações Rails para acelerar os tempos de resposta e reduzir a carga na base de dados.
  2. Processamento de tarefas em segundo plano: O Redis serve como backend para bibliotecas populares de processamento de tarefas em segundo plano como Sidekiq e Resque, melhorando o desempenho e a fiabilidade das tarefas em segundo plano em aplicações Rails.
  3. Funcionalidades em tempo real: A funcionalidade Pub/Sub do Redis permite que aplicações Rails implementem funcionalidades em tempo real como notificações, sistemas de chat e análises em tempo real, facilitando a passagem rápida e eficiente de mensagens entre diferentes componentes da aplicação.

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

  • Desdobre a sua aplicação em segundos com um simples git push.
  • Use o seu próprio nome de 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ção simples, transparente e previsível.
  • Obtenha desempenho ótimo e segurança robusta graças a uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: leva apenas 5 minutos para experimentar a solução de Ruby cloud hosting da Stackhero.

Para começar, pode querer instalar o gem "redis":

bundle add redis

Em seguida, pode editar o ficheiro config/environments/production.rb e adicionar esta linha:

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

Finalmente, defina a variável de ambiente REDIS_URL. Pode usar este URL e apenas substituir <yourPassword> e <XXXXXX> pelas suas informações:

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

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

O Sidekiq usará automaticamente o servidor Redis definido na variável de ambiente REDIS_URL.

Pode definir a variável de ambiente REDIS_URL assim, substituindo <password> e <XXXXXX> pelas suas informações:

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

Por padrão, o Sidekiq está configurado de forma a não tolerar perturbações na rede. Para melhorar isso, sugerimos modificar 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 segundo (120 segundos/2 minutos no total) antes de acionar um erro
  }
end

Esta configuração garante que, se o seu servidor Redis se tornar indisponível, o cliente tentará novas tentativas durante 2 minutos antes de relatar um erro. Isso dá tempo para o servidor Redis reiniciar, por exemplo. Dependendo do uso do seu Sidekiq, pode ajustar esta configuração para melhor atender às suas necessidades específicas.

Para mais informações sobre Sidekiq e Redis, pode consultar a documentação oficial aqui.

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

Pode definir a variável de ambiente REDIS_URL assim, substituindo <yourPassword> e <XXXXXX> pelas suas informações:

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

Para mais informações sobre Resque e Redis, pode consultar a documentação oficial aqui.