Valkey: Verwendung mit Ruby

Wie man Valkey mit Ruby verbindet

👋 Willkommen in der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite Valkey Cloud Lösung, die zahlreiche Vorteile bietet, darunter:

  • Redis Commander Web-UI inklusive.
  • Unbegrenzte Nachrichtengröße und Übertragungen.
  • Mühelose Updates mit nur einem Klick.
  • Optimale Performance und robuste Sicherheit durch eine private und dedizierte VM.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Valkey Cloud Hosting Lösung von Stackhero auszuprobieren!

Valkey ist eine Open-Source-In-Memory-Datenbank, die für außergewöhnliche Leistung und Flexibilität entwickelt wurde. Abgeleitet von Redis, nachdem es eine restriktivere Lizenz angenommen hatte, bietet Valkey eine vollständig Open-Source-Alternative. Es bietet nahtlose Kompatibilität mit Redis-Bibliotheken und ist somit ein hervorragender Ersatz für Projekte, die zuvor auf Redis angewiesen waren.

Oft als NoSQL-Datenbank bezeichnet, unterstützt Valkey eine breite Palette von Datenstrukturen wie Strings, Hashes, Listen, Sets und sortierte Sets, unter anderem. Mit seinen Hochgeschwindigkeitsoperationen und der Fähigkeit, große Datenmengen zu verarbeiten, ist Valkey eine beliebte Wahl für Anwendungsfälle wie Caching, Echtzeitanalysen, Messaging und mehr geworden.

Valkey integriert sich mühelos mit Ruby und Ruby on Rails und verbessert Leistung, Skalierbarkeit und Flexibilität. Ruby-Entwickler können Valkey nutzen, um Funktionen wie Caching, Sitzungsverwaltung, Echtzeitdatenverarbeitung und Hintergrundaufgabenverwaltung zu implementieren, unter anderem.

Hier sind einige gängige Möglichkeiten, wie Valkey mit Ruby und Ruby on Rails genutzt wird:

  1. Caching: Valkey kann als Caching-Schicht in Rails-Anwendungen dienen, die Antwortzeiten beschleunigen und die Datenbankbelastung reduzieren.

  2. Hintergrundaufgabenverarbeitung: Valkey kann als Backend für beliebte Hintergrundaufgabenverarbeitungsbibliotheken wie Sidekiq und Resque fungieren und die Leistung und Zuverlässigkeit von Hintergrundaufgaben in Rails-Anwendungen verbessern.

  3. Echtzeitfunktionen: Die Pub/Sub-Funktionalität von Valkey ermöglicht es Rails-Anwendungen, Echtzeitfunktionen wie Benachrichtigungen, Chatsysteme und Echtzeitanalysen bereitzustellen, indem sie einen schnellen und effizienten Nachrichtenaustausch zwischen Anwendungskomponenten erleichtert.

Stackhero bietet eine einsatzbereite Ruby-Cloud-Lösung, die zahlreiche Vorteile bietet, darunter:

  • Bereitstellung Ihrer Anwendung in Sekunden mit einem einfachen git push.
  • Verwenden Sie Ihren eigenen Domainnamen und profitieren Sie von der automatischen Konfiguration von HTTPS-Zertifikaten für erhöhte Sicherheit.
  • Genießen Sie beruhigende automatische Backups, Ein-Klick-Updates und eine einfache, transparente und vorhersehbare Preisgestaltung.
  • Erhalten Sie optimale Leistung und robuste Sicherheit dank einer privaten und dedizierten VM.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Ruby-Cloud-Hosting-Lösung von Stackhero auszuprobieren!

Um Valkey als Cache-System in Ruby on Rails zu konfigurieren, folgen Sie diesen Schritten:

  1. Installieren Sie das redis-Gem:
bundle add redis
  1. Bearbeiten Sie die Datei config/environments/production.rb und fügen Sie die folgende Konfiguration hinzu:
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
  1. Definieren Sie die Umgebungsvariable VALKEY_URL. Verwenden Sie eine URL im folgenden Format und ersetzen Sie <yourPassword> und <XXXXXX> durch Ihre Anmeldedaten:
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Für weitere Details zur Konfiguration von Valkey als Cache-System für Ruby on Rails können Sie die offizielle Rails-Dokumentation hier konsultieren.

Sidekiq wird automatisch den Valkey-Server verwenden, der durch die Umgebungsvariable REDIS_URL definiert ist.

Sie können die Umgebungsvariable REDIS_URL wie folgt festlegen, indem Sie <password> und <XXXXXX> durch Ihre Informationen ersetzen:

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

Standardmäßig ist Sidekiq so konfiguriert, dass es keine Toleranz bei Netzwerkstörungen zulässt. Um dies zu verbessern, empfehlen wir, die Sidekiq-Client-Konfiguration in config/initializers/sidekiq.rb zu ändern, um die Stabilität zu erhöhen:

# Datei config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # Timeout auf 5 Sekunden setzen
    pool_timeout: 5, # Timeout auf 5 Sekunden setzen
    reconnect_attempts: Array.new(240, 0.5) # 240 Mal versuchen, sich alle 0,5 Sekunden (insgesamt 120 Sekunden/2 Minuten) erneut zu verbinden, bevor ein Fehler ausgelöst wird
  }
end

Diese Konfiguration stellt sicher, dass, wenn Ihr Valkey-Server nicht verfügbar wird, der Client 2 Minuten lang Wiederholungsversuche unternimmt, bevor ein Fehler gemeldet wird. Dies gibt dem Valkey-Server Zeit zum Neustarten, zum Beispiel. Abhängig von der Nutzung Ihres Sidekiq können Sie diese Einstellung anpassen, um besser auf Ihre spezifischen Anforderungen einzugehen.

Für weitere Informationen über Sidekiq und Valkey können Sie die offizielle Dokumentation hier konsultieren.

Um Valkey mit Resque zu verwenden, setzen Sie die Umgebungsvariable REDIS_URL wie folgt, indem Sie <yourPassword> und <XXXXXX> durch Ihre Anmeldedaten ersetzen:

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

Resque wird automatisch den in der Umgebungsvariable REDIS_URL angegebenen Valkey-Server verwenden.

Für weitere Informationen zur Verwendung von Resque mit Valkey können Sie die Resque-Dokumentation hier einsehen.