Valkey: Utiliser avec Ruby

Comment connecter Valkey avec Ruby

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Valkey 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 VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Valkey cloud hosting de Stackhero !

Valkey est une base de données in-memory open source conçue pour offrir des performances exceptionnelles et une grande flexibilité. Issue d'un fork de Redis après le passage de ce dernier à une licence plus restrictive, Valkey propose une alternative entièrement open source. Elle assure une compatibilité totale avec les bibliothèques Redis, ce qui en fait un excellent remplacement pour les projets qui utilisaient auparavant Redis.

Souvent qualifiée de base de données NoSQL, Valkey 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 gros volumes de données, Valkey est très appréciée pour des usages tels que le cache, l'analytics en temps réel, la messagerie, et bien plus encore.

Valkey s'intègre facilement avec Ruby et Ruby on Rails, améliorant ainsi les performances, la scalabilité et la flexibilité. Les développeurs Ruby peuvent exploiter Valkey pour mettre en place des 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 exemples d'utilisation courants de Valkey avec Ruby et Ruby on Rails :

  1. Cache : Valkey peut servir de couche de cache dans les applications Rails, accélérant les temps de réponse et réduisant la charge sur la base de données.

  2. Traitement des tâches en arrière-plan : Valkey peut être utilisé comme backend pour des bibliothèques de gestion de tâches en arrière-plan populaires comme Sidekiq et Resque, améliorant ainsi la performance et la fiabilité des tâches dans les applications Rails.

  3. Fonctionnalités temps réel : La fonctionnalité Pub/Sub de Valkey 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 le passage de messages rapide et efficace entre les 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, mises à jour en un clic, ainsi qu'à une tarification simple, transparente et prévisible.
  • Profitez 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 !

Pour configurer Valkey comme système de cache dans Ruby on Rails, suivez ces étapes :

  1. Installez la gem redis :
bundle add redis
  1. Modifiez le fichier config/environments/production.rb et ajoutez la configuration suivante :
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
  1. Définissez la variable d'environnement VALKEY_URL. Utilisez une URL au format suivant, en remplaçant <yourPassword> et <XXXXXX> par vos identifiants :
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Pour plus de détails sur la configuration de Valkey comme système de cache pour Ruby on Rails, vous pouvez consulter la documentation officielle de Rails ici.

Sidekiq utilisera automatiquement le serveur Valkey défini par la variable d'environnement REDIS_URL.

Vous pouvez définir la variable d'environnement REDIS_URL comme ceci, en remplaçant simplement <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 Valkey devient indisponible, le client tentera des reconnexions pendant 2 minutes avant de remonter une erreur. Cela laisse le temps au serveur Valkey de redémarrer, par exemple. 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 Valkey, vous pouvez consulter la documentation officielle ici.

Pour utiliser Valkey avec Resque, définissez la variable d'environnement REDIS_URL comme suit, en remplaçant <yourPassword> et <XXXXXX> par vos identifiants :

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Resque utilisera automatiquement le serveur Valkey spécifié dans la variable d'environnement REDIS_URL.

Pour plus d'informations sur l'utilisation de Resque avec Valkey, vous pouvez consulter la documentation Resque ici.