Valkey: Utilisation avec Ruby

Comment connecter Valkey avec Ruby

👋 Bienvenue dans la documentation Stackhero !

Stackhero propose une solution Valkey cloud clé en main qui offre de nombreux avantages, notamment :

  • Interface web Redis Commander incluse.
  • Taille des messages et transferts illimités.
  • Mises à jour faciles en un seul clic.
  • Performance optimale et sécurité avancé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 l’hébergement Valkey cloud de Stackhero !

Valkey est une base de données open source en mémoire conçue pour offrir des performances exceptionnelles et une grande flexibilité. Issue d’un fork de Redis après l’adoption d’une licence plus restrictive, Valkey propose une alternative entièrement open source. Elle assure une compatibilité transparente avec les bibliothèques Redis, ce qui en fait un excellent remplacement direct pour les projets qui utilisaient auparavant Redis.

Souvent qualifiée de base de données NoSQL, Valkey 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 gros volumes de données, Valkey est devenue un choix populaire pour des cas d’usage comme le cache, l’analytique 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 tirer parti de Valkey pour mettre en œuvre des fonctionnalités comme le cache, la gestion de session, le traitement de données en temps réel ou la gestion des tâches en arrière-plan, entre autres.

Voici quelques façons courantes d’utiliser 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 populaires de gestion de tâches en arrière-plan comme Sidekiq et Resque, améliorant 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 telles que les notifications, les systèmes de chat et l’analytique en temps réel, en facilitant un 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é robuste 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 !

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, Sidekiq est configuré de manière à 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 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.