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 offrant 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 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 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 une large gamme de structures de données telles que les chaînes, les hachages, les listes, les ensembles et les ensembles triés, entre autres. Grâce à ses opérations à grande vitesse et sa capacité à gérer de grandes quantités de données, Redis est devenu un choix populaire pour le caching, l'analyse en temps réel, la messagerie et divers autres cas d'utilisation.

Redis peut être intégré de manière transparente avec Ruby et Ruby on Rails pour améliorer les performances, l'évolutivité et la flexibilité. En exploitant Redis, les développeurs Ruby peuvent implémenter diverses fonctionnalités telles que le caching, la gestion de session, le traitement de données en temps réel et le traitement de tâches en arrière-plan, entre autres.

Voici quelques façons courantes d'utiliser Redis avec Ruby et Ruby on Rails :

  1. Caching : 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.
  2. Traitement de tâches en arrière-plan : Redis sert de backend pour des bibliothèques populaires de traitement de tâches en arrière-plan comme Sidekiq et Resque, améliorant les performances et la fiabilité des tâches en arrière-plan dans les applications Rails.
  3. Fonctionnalités en temps réel : La fonctionnalité Pub/Sub de Redis permet aux applications Rails d'implémenter des fonctionnalités en temps réel telles que les notifications, les systèmes de chat et l'analyse en temps réel en facilitant le passage rapide et efficace de messages entre différents composants de l'application.

Stackhero offre une solution Ruby cloud prête à l'emploi qui propose 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 avec des sauvegardes automatiques, des mises à jour en un clic, et une tarification simple, transparente et prévisible.
  • Obtenez des performances optimales et une sécurité robuste grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il ne faut que 5 minutes pour essayer la solution Ruby cloud hosting de Stackhero.

Pour commencer, vous pouvez installer le gem "redis" :

bundle add redis

Ensuite, vous pouvez éditer le fichier config/environments/production.rb et ajouter 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 et simplement remplacer <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.

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 manière à ne pas tolérer les perturbations réseau. Pour améliorer cela, nous vous suggérons de modifier la configuration du client Sidekiq dans config/initializers/sidekiq.rb pour renforcer la stabilité :

# Fichier config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # Définir le timeout à 5 secondes
    pool_timeout: 5, # Définir le timeout à 5 secondes
    reconnect_attempts: Array.new(240, 0.5) # Essayer de se reconnecter 240 fois, toutes les 0.5 seconde (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 réessais pendant une durée de 2 minutes avant de signaler une erreur. Cela donne le temps au serveur Redis de redémarrer, par exemple. Selon l'utilisation de votre Sidekiq, 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.

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.