Redis®*: Erste Schritte
Kurzanleitung zum Einstieg in Redis
👋 Willkommen in der Stackhero-Dokumentation!
Stackhero bietet eine einsatzbereite Redis Cloud Lösung mit zahlreichen Vorteilen, darunter:
Redis CommanderWeb-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 Redis Cloud Hosting Lösung von Stackhero auszuprobieren!
Redis ist eine leistungsstarke, unglaublich schnelle In-Memory-Datenbank, die mehrere Zwecke erfüllt. Sie kann als Caching-System, Key-Value-Store, zur Echtzeit-Datensortierung und als Publish-Subscribe-Warteschlange sowie Ereignissystem fungieren.
Warnung Redis hat seine Lizenz geändert und ist nicht mehr Open Source. Die Community, Entwickler und Unternehmen haben einen Redis-Fork namens Valkey erstellt, der ein direkter Ersatz für Redis ist. Wir empfehlen, Valkey anstelle von Redis zu verwenden.
Um Ihnen den Einstieg zu erleichtern, haben wir einige Codebeispiele geteilt, die zeigen, wie man sich mit einer Redis-Instanz verbindet. Diese Beispiele finden Sie im folgenden GitHub-Repository: https://github.com/stackhero-io/redisGettingStarted.
Verwendung von Redis mit Ruby und Ruby on Rails
Konfigurieren Sie Redis als Cache-System für Ruby on Rails
Um zu beginnen, möchten Sie möglicherweise das "redis"-Gem installieren. Dies können Sie tun, indem Sie Folgendes ausführen:
bundle add redis
Öffnen Sie anschließend die Datei config/environments/production.rb und fügen Sie die folgende Zeile hinzu:
config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'] }
Definieren Sie schließlich die Umgebungsvariable REDIS_URL. Hier ist eine Vorlage, die Sie mit Ihren Details verwenden können:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Warnung Standardmäßig ist das Caching nur in der Produktionsumgebung aktiviert. Wenn Sie das Caching während der Entwicklung testen möchten, können Sie die Datei
config/environments/development.rbbearbeiten. Fügen Sie die obige Konfiguration hinzu und inkludieren Sieconfig.action_controller.perform_caching = true, um das Caching zu aktivieren. Eine einfache Möglichkeit, zu überprüfen, ob das Caching funktioniert, besteht darin, eine Rails-Konsole zu starten (mitbin/rails console) und zu testen, indem SieRails.cache.write("foo", "bar")schreiben.
Weitere Details zur Konfiguration von Redis als Cache-System für Ruby on Rails finden Sie in der offiziellen Rails-Dokumentation.
Konfigurieren Sie Redis für Sidekiq
Sidekiq wird automatisch den in der Umgebungsvariable REDIS_URL angegebenen Redis-Server verwenden.
Sie können die Umgebungsvariable REDIS_URL mit Ihren spezifischen Informationen wie folgt definieren:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Weitere Einblicke in die Verwendung von Sidekiq mit Redis finden Sie in der offiziellen Sidekiq-Dokumentation.
Konfigurieren Sie Redis für Resque
Resque wird, ähnlich wie Sidekiq, den in der Umgebungsvariable REDIS_URL definierten Redis-Server verwenden.
Setzen Sie REDIS_URL mit Ihren Details wie folgt:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Weitere Informationen zur Verwendung von Resque mit Redis finden Sie in der offiziellen Resque-Dokumentation.
PHP-Sitzungen mit Redis verwalten
Sie können den folgenden Code verwenden, um PHP-Sitzungen auf Stackhero für Redis zu speichern:
<?php
// Redis-URL analysieren
$redis_url = parse_url('rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>');
// Sitzungs-Handler konfigurieren
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', "tls://{$redis_url['host']}:{$redis_url['port']}?auth={$redis_url['pass']}&timeout=5");
// Sitzung starten
session_start();
?>
Verbesserung der Redis-Sicherheit
Um sicherzustellen, dass Ihre Redis-Instanz sicher ist, ist die Implementierung bestimmter Sicherheitsmaßnahmen entscheidend.
Verschlüsseln Sie die Kommunikation mit Redis (TLS)
Standardmäßig verschlüsselt Redis die Kommunikation nicht. Auf Stackhero haben wir jedoch standardmäßig TLS-Verschlüsselung integriert.
Um dies zu nutzen, konfigurieren Sie Ihren Redis-Client so, dass er TLS-Verschlüsselung verwendet und verbinden Sie sich über den <PORT_TLS>-Port mit Ihrer Instanz. Vermeiden Sie die Verwendung von <PORT_CLEAR>, da dieser keine Daten verschlüsselt.
Das Beste daran ist, dass Sie nichts weiter tun müssen, wir haben die komplexe Einrichtung übernommen.
Schützen Sie Redis vor Brute-Force-Angriffen
Ihre Redis-Instanz ist mit einem Passwort gesichert, das Stackhero automatisch auf einen sehr sicheren Standard setzt. Wenn Sie es ändern möchten, stellen Sie sicher, dass Sie ein äußerst komplexes Passwort wählen.
Redis ist sehr effizient, verfügt jedoch nicht über integrierte Schutzmaßnahmen gegen Brute-Force-Angriffe, sodass ein Angreifer potenziell bis zu 150.000 Passwortkombinationen pro Sekunde testen kann.
Um dieses Risiko zu mindern, erzwingen wir eine Mindestpasswortlänge von 16 Zeichen (was etwa 4.5231285e+74 Kombinationen ergibt). Standardmäßig verwenden wir ein 64-stelliges Passwort (was etwa 9.61963e+111 Kombinationen bietet).
Für zusätzliche Sicherheit und um das Risiko von Brute-Force-Angriffen erheblich zu reduzieren, wird dringend empfohlen, die Firewall-Einstellungen von Stackhero (unter dem Tab "Firewall" zu finden) so zu konfigurieren, dass Verbindungen strikt auf Ihre IP-Adressen beschränkt sind. Dieser Schritt ist entscheidend, um Ihre Sicherheitslage zu verbessern.