Redis®*: Utilisation avec Ruby
Comment connecter Redis avec Ruby
👋 Bienvenue dans la documentation Stackhero !
Stackhero propose une solution Redis cloud clé en main qui offre de nombreux avantages, notamment :
- Interface web Redis Commander incluse.
- Taille et transferts de messages illimités.
- Mises à jour faciles en un seul clic.
- Performance optimale et sécurité renforcée grâce à une infrastructure privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il ne vous faut que 5 minutes pour essayer la solution d'hébergement Redis cloud de Stackhero !
Redis, qui signifie Remote Dictionary Server, est une base de données open source en mémoire offrant des performances et une flexibilité exceptionnelles.
Souvent qualifié de base de données NoSQL, Redis prend en charge un large éventail de structures de données telles que les strings, hashes, listes, sets et sorted sets, entre autres. Grâce à ses opérations ultra-rapides et à sa capacité à gérer de grands volumes de données, Redis est devenu un choix populaire pour le cache, l’analytique en temps réel, la messagerie et de nombreux autres cas d’utilisation.
Redis peut être intégré de façon transparente avec Ruby et Ruby on Rails afin d’améliorer la performance, la scalabilité et la flexibilité. En tirant parti de Redis, les développeurs Ruby peuvent mettre en œuvre différentes fonctionnalités comme le cache, la gestion de session, le traitement de données en temps réel et la gestion des tâches en arrière-plan, entre autres.
Voici quelques façons courantes d’utiliser Redis avec Ruby et Ruby on Rails :
- Cache : Redis peut être utilisé comme magasin de cache dans les applications Rails pour accélérer les temps de réponse et réduire la charge sur la base de données.
- Traitement des tâches en arrière-plan : Redis sert de backend pour des librairies populaires de traitement de tâches en arrière-plan comme Sidekiq et Resque, ce qui améliore la performance et la fiabilité des tâches en arrière-plan dans les applications Rails.
- Fonctionnalités temps réel : La fonctionnalité Pub/Sub de Redis permet aux applications Rails de mettre en place des fonctionnalités temps réel comme les notifications, les systèmes de chat et l’analytique en temps réel, en facilitant la transmission rapide et efficace de messages entre différents composants de l’application.
Stackhero propose une solution Ruby cloud clé en main qui offre de nombreux avantages, notamment :
- Déployez votre application en quelques secondes avec un simple
git push.- Utilisez votre propre nom de domaine et profitez de la configuration automatique des certificats HTTPS pour une sécurité accrue.
- Profitez de la tranquillité d’esprit grâce aux sauvegardes automatiques, aux mises à jour en un clic et à une tarification simple, transparente et prévisible.
- Bénéficiez d’une performance optimale et d’une sécurité renforcée grâce à une infrastructure privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il ne faut que 5 minutes pour essayer la solution d’hébergement Ruby cloud de Stackhero.
Configurer Redis comme système de cache pour Ruby on Rails
Pour commencer, vous pouvez installer la gem "redis" :
bundle add redis
Ensuite, modifiez le fichier config/environments/production.rb et ajoutez cette ligne :
config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }
Enfin, définissez la variable d’environnement REDIS_URL. Vous pouvez utiliser cette URL en remplaçant simplement <yourPassword> et <XXXXXX> par vos informations :
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Pour plus d’informations sur la configuration de Redis comme système de cache pour Ruby on Rails, vous pouvez consulter la documentation officielle de Rails ici.
Configurer Redis avec Sidekiq
Sidekiq utilisera automatiquement le serveur Redis défini dans la variable d’environnement REDIS_URL.
Vous pouvez définir la variable d’environnement REDIS_URL comme ceci, en remplaçant <password> et <XXXXXX> par vos informations :
REDIS_URL="rediss://default:<password>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Par défaut, Sidekiq est configuré de façon à ne tolérer aucune perturbation réseau. Pour améliorer cela, nous vous recommandons de modifier la configuration du client Sidekiq dans config/initializers/sidekiq.rb afin d’augmenter la stabilité :
# Fichier config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
config.redis = {
network_timeout: 5, # Définit le timeout à 5 secondes
pool_timeout: 5, # Définit le timeout à 5 secondes
reconnect_attempts: Array.new(240, 0.5) # Tente de se reconnecter 240 fois, toutes les 0,5 seconde (soit 120 secondes/2 minutes au total) avant de déclencher une erreur
}
end
Cette configuration garantit que si votre serveur Redis devient indisponible, le client tentera de se reconnecter pendant 2 minutes avant de signaler une erreur. Cela laisse le temps au serveur Redis de redémarrer, par exemple. Selon l’utilisation de Sidekiq dans votre contexte, vous pouvez ajuster ce paramètre pour mieux répondre à vos besoins spécifiques.
Pour plus d’informations sur Sidekiq et Redis, vous pouvez consulter la documentation officielle ici.
Configurer Redis avec Resque
Resque utilisera automatiquement le serveur Redis défini dans la variable d’environnement REDIS_URL.
Vous pouvez définir la variable d’environnement REDIS_URL comme ceci, en remplaçant <yourPassword> et <XXXXXX> par vos informations :
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Pour plus d’informations sur Resque et Redis, vous pouvez consulter la documentation officielle ici.