Redis®*: Utilisation avec Ruby
Comment connecter Redis avec Ruby
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution Redis cloud prête à l'emploi qui offre de nombreux avantages, notamment :
- Interface web Redis Commander incluse.
- Taille et transferts de messages illimités.
- Mises à jour simplifiées en un 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 suffit de 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 de nombreux types de structures de données comme 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 privilégié pour le cache, l'analytics en temps réel, la messagerie et de nombreux autres cas d'usage.
Redis s'intègre parfaitement avec Ruby et Ruby on Rails pour améliorer les performances, la scalabilité et la flexibilité. En utilisant Redis, les développeurs Ruby peuvent mettre en place différentes fonctionnalités comme le cache, la gestion de session, le traitement de données en temps réel ou encore la gestion des tâches en arrière-plan.
Voici quelques usages courants de Redis avec Ruby et Ruby on Rails :
- Cache : Redis peut être utilisé comme système 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 bibliothèques populaires de gestion de tâches 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 proposer des fonctionnalités temps réel comme les notifications, systèmes de chat ou analytics en temps réel, en facilitant l'échange rapide et efficace de messages entre les différents composants de l'application.
Stackhero propose une solution Ruby cloud prête à l'emploi 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é renforcée.
- Bénéficiez de la tranquillité d'esprit grâce aux sauvegardes automatiques, aux mises à jour en un clic et à une tarification simple, transparente et prévisible.
- Profitez 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 suffit de 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. Utilisez 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, la configuration de Sidekiq ne prévoit aucune tolérance en cas de perturbations réseau. Pour améliorer cela, nous vous recommandons de modifier la configuration du client Sidekiq dans config/initializers/sidekiq.rb afin de renforcer 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 des reconnexions pendant 2 minutes avant de signaler une erreur. Cela laisse le temps au serveur Redis de redémarrer, par exemple. Selon l'utilisation de votre Sidekiq, vous pouvez ajuster ce paramètre pour l'adapter à 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.