Redis®*: Utilizar com Ruby
Como ligar o Redis ao Ruby
👋 Bem-vindo à documentação da Stackhero!
A Stackhero disponibiliza uma solução Redis 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 de alojamento Redis cloud da Stackhero!
O Redis, que significa Remote Dictionary Server, é uma base de dados open-source em memória que oferece um desempenho e flexibilidade excecionais.
Frequentemente referido como uma base de dados NoSQL, o Redis 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 lidar com grandes volumes de dados, o Redis tornou-se uma escolha popular para cache, analytics em tempo real, sistemas de mensagens e muitos outros casos de utilização.
O Redis pode ser integrado de forma transparente com Ruby e Ruby on Rails para melhorar o desempenho, a escalabilidade e a flexibilidade. Ao tirar partido do Redis, os programadores Ruby podem implementar várias funcionalidades, como cache, gestão de sessões, processamento de dados em tempo real e processamento de tarefas em background, entre outras.
Aqui estão algumas formas comuns de utilização do Redis com Ruby e Ruby on Rails:
- Cache: O Redis pode ser utilizado como sistema de cache em aplicações Rails para acelerar os tempos de resposta e reduzir a carga sobre a base de dados.
- Processamento de tarefas em background: O Redis serve 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.
- 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 analytics em tempo real, facilitando a troca 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 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 estrutura de preços 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.
Configurar o Redis como sistema de cache para Ruby on Rails
Para começar, deverá instalar a gem "redis":
bundle add redis
De seguida, edite o ficheiro config/environments/production.rb e adicione esta linha:
config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }
Por fim, defina a variável de ambiente REDIS_URL. Pode utilizar este URL, substituindo apenas <yourPassword> e <XXXXXX> pelos seus dados:
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, consulte a documentação oficial do Rails aqui.
Configurar o Redis com Sidekiq
O Sidekiq irá utilizar automaticamente o servidor Redis definido na variável de ambiente REDIS_URL.
Pode definir a variável de ambiente REDIS_URL desta forma, substituindo <password> e <XXXXXX> pelos seus dados:
REDIS_URL="rediss://default:<password>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Por predefinição, o Sidekiq está configurado de forma 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 reforçar 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 Redis ficar indisponível, o cliente tentará reconectar durante 2 minutos antes de reportar um erro. Isto dá tempo, por exemplo, para o servidor Redis reiniciar. Dependendo da utilização do seu Sidekiq, pode ajustar este parâmetro para melhor se adequar às suas necessidades específicas.
Para mais informações sobre Sidekiq e Redis, consulte a documentação oficial aqui.
Configurar o Redis com Resque
O Resque irá utilizar automaticamente o servidor Redis definido na variável de ambiente REDIS_URL.
Pode definir a variável de ambiente REDIS_URL desta forma, substituindo <yourPassword> e <XXXXXX> pelos seus dados:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Para mais informações sobre Resque e Redis, consulte a documentação oficial aqui.