Valkey: Verwendung mit Ruby
Wie Sie Valkey mit Ruby verbinden
👋 Willkommen in der Stackhero-Dokumentation!
Stackhero bietet eine einsatzbereite Valkey Cloud-Lösung mit zahlreichen Vorteilen, darunter:
Redis CommanderWeb-Oberfläche inklusive.- Unbegrenzte Nachrichtengröße und Übertragungen.
- Mühelose Updates mit nur einem Klick.
- Optimale Performance und hohe Sicherheit durch eine private, dedizierte Infrastruktur.
Sparen Sie Zeit und vereinfachen Sie Ihren Alltag: 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 Performance und Flexibilität entwickelt wurde. Valkey entstand als Fork von Redis, nachdem Redis eine restriktivere Lizenz eingeführt hatte, und bietet eine vollständig quelloffene Alternative. Sie ist nahtlos kompatibel mit Redis-Bibliotheken und eignet sich daher hervorragend als Drop-in-Ersatz für Projekte, die zuvor Redis verwendet haben.
Valkey wird häufig als NoSQL-Datenbank bezeichnet und unterstützt eine Vielzahl von Datenstrukturen wie Strings, Hashes, Listen, Sets und Sorted Sets, um nur einige zu nennen. Dank ihrer schnellen Operationen und der Fähigkeit, große Datenmengen zu verarbeiten, ist Valkey eine beliebte Wahl für Anwendungsfälle wie Caching, Echtzeit-Analysen, Messaging und vieles mehr.
Valkey lässt sich problemlos mit Ruby und Ruby on Rails integrieren und steigert so Performance, Skalierbarkeit und Flexibilität. Ruby-Entwickler können Valkey nutzen, um Funktionen wie Caching, Sitzungsverwaltung, Echtzeit-Datenverarbeitung und die Verwaltung von Hintergrundjobs zu implementieren.
Hier sind einige gängige Einsatzmöglichkeiten von Valkey mit Ruby und Ruby on Rails:
-
Caching: Valkey kann als Caching-Layer in Rails-Anwendungen dienen, um Antwortzeiten zu beschleunigen und die Datenbanklast zu reduzieren.
-
Verarbeitung von Hintergrundjobs: Valkey kann als Backend für beliebte Libraries zur Hintergrundjob-Verarbeitung wie Sidekiq und Resque eingesetzt werden und verbessert so die Performance und Zuverlässigkeit von Hintergrundaufgaben in Rails-Anwendungen.
-
Echtzeit-Funktionen: Die Pub/Sub-Funktionalität von Valkey ermöglicht es Rails-Anwendungen, Echtzeit-Features wie Benachrichtigungen, Chatsysteme und Echtzeit-Analysen bereitzustellen, indem sie einen schnellen und effizienten Nachrichtenaustausch zwischen den Anwendungskomponenten ermöglicht.
Stackhero bietet eine einsatzbereite Ruby Cloud Lösung mit zahlreichen Vorteilen, darunter:
- Deployen Sie Ihre Anwendung in Sekunden mit einem einfachen
git push.- Verwenden Sie Ihre eigene Domain und profitieren Sie von der automatischen Einrichtung von HTTPS-Zertifikaten für erhöhte Sicherheit.
- Genießen Sie sorgenfreie Nutzung dank automatischer Backups, One-Click-Updates sowie einer einfachen, transparenten und vorhersehbaren Preisgestaltung.
- Erzielen Sie optimale Performance und starke Sicherheit durch eine private, dedizierte Infrastruktur.
Sparen Sie Zeit und vereinfachen Sie Ihren Alltag: Es dauert nur 5 Minuten, um die Ruby Cloud Hosting Lösung von Stackhero auszuprobieren!
Valkey als Cache-System für Ruby on Rails konfigurieren
Um Valkey als Cache-System in Ruby on Rails zu konfigurieren, gehen Sie wie folgt vor:
- Installieren Sie das
redis-Gem:
bundle add redis
- Bearbeiten Sie die Datei
config/environments/production.rbund fügen Sie folgende Konfiguration hinzu:
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
- Definieren Sie die Umgebungsvariable
VALKEY_URL. Verwenden Sie eine URL im folgenden Format und ersetzen Sie<yourPassword>und<XXXXXX>durch Ihre Zugangsdaten:
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Weitere Details zur Konfiguration von Valkey als Cache-System für Ruby on Rails finden Sie in der offiziellen Rails-Dokumentation hier.
Valkey mit Sidekiq konfigurieren
Sidekiq verwendet automatisch den Valkey-Server, der durch die Umgebungsvariable REDIS_URL definiert ist.
Sie können die Umgebungsvariable REDIS_URL wie folgt setzen, 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 bei Netzwerkstörungen keine Toleranz besteht. Um dies zu verbessern, empfehlen wir, die Sidekiq-Client-Konfiguration in config/initializers/sidekiq.rb wie folgt anzupassen, 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 Wiederverbindungsversuche, alle 0,5 Sekunden (insgesamt 120 Sekunden/2 Minuten), bevor ein Fehler ausgelöst wird
}
end
Diese Konfiguration stellt sicher, dass der Client bei einer Nichtverfügbarkeit Ihres Valkey-Servers für 2 Minuten Wiederverbindungsversuche unternimmt, bevor ein Fehler gemeldet wird. So bleibt beispielsweise Zeit für einen Neustart des Valkey-Servers. Je nach Nutzung von Sidekiq können Sie diese Einstellung an Ihre spezifischen Anforderungen anpassen.
Weitere Informationen zu Sidekiq und Valkey finden Sie in der offiziellen Dokumentation hier.
Valkey mit Resque konfigurieren
Um Valkey mit Resque zu verwenden, setzen Sie die Umgebungsvariable REDIS_URL wie folgt, wobei Sie <yourPassword> und <XXXXXX> durch Ihre Zugangsdaten ersetzen:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Resque verwendet automatisch den in der Umgebungsvariable REDIS_URL angegebenen Valkey-Server.
Weitere Informationen zur Verwendung von Resque mit Valkey finden Sie in der Resque-Dokumentation hier.