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 des messages et transferts illimités.
- Mises à jour simplifiées en un clic.
- Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Redis cloud hosting de Stackhero !
Redis, acronyme de 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 à sa rapidité d'exécution 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 de jobs 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 de jobs en arrière-plan : Redis sert de backend pour des bibliothèques populaires de gestion de jobs 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 d'implémenter 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 bénéficiez de la configuration automatique des certificats HTTPS pour une sécurité renforcée.
- Profitez de la tranquillité d'esprit grâce aux backups automatiques, 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 VM 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.
Configuration de 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 la ligne suivante :
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 <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, consultez la documentation officielle de Rails ici.
Configuration de 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 de cette façon, 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 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 des reconnexions pendant 2 minutes avant de signaler une erreur. Cela laisse le temps, par exemple, au serveur Redis de redémarrer. Selon l'utilisation de Sidekiq dans votre application, vous pouvez ajuster ce paramètre pour l'adapter à vos besoins spécifiques.
Pour plus d'informations sur Sidekiq et Redis, consultez la documentation officielle ici.
Configuration de 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 de cette façon, 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, consultez la documentation officielle ici.