← Neuigkeiten

Persistentes Redis: Queues, Sessions und Horizon, die nicht verloren gehen

Neuigkeiten 4 Min. Lesezeit

Seit 2024 haben Sie Redis in allen Tarifen inklusive, und daran ändert sich nichts. Dieses Redis ist aber ein Cache und verhält sich auch so: Es startet nach jedem Neustart leer und verwirft, wenn es voll ist, die am wenigsten genutzten Schlüssel. Für den Objekt-Cache von WordPress ist das genau richtig, denn alles, was darin liegt, lässt sich neu berechnen.

Eine Job-Queue oder die Session eines Benutzers lässt sich nicht neu berechnen. Wird der Cache geleert, verschwindet ein ausstehender Job, ohne dass es jemand merkt, und wer in Ihrer Anwendung angemeldet war, muss sich neu anmelden. Deshalb haben wir bisher empfohlen, Queues und Sessions in der Datenbank zu belassen, und Horizon, das nur mit Redis arbeitet, blieb außen vor.

Jetzt können Sie in den Tarifen Avanza, Max und Elastic ein persistentes Redis aktivieren.

Was es anders macht

Es ist eine eigene Instanz Ihres Kontos. Es ist Valkey 8, kompatibel mit Redis: dieselben Befehle und dieselben Clients, etwa PhpRedis. Und es verhält sich so, wie es Queues und Sessions brauchen:

  • Es speichert seine Daten jede Sekunde auf der Festplatte. Bei einem Neustart bleiben sie erhalten, und bei einem Ausfall geht höchstens die letzte Sekunde verloren.
  • Wenn es voll ist, löscht es nichts: Neue Schreibvorgänge werden mit einem Fehler abgelehnt. Bei einer Queue ist genau das gewünscht: Die Anwendung meldet sich, statt dass ein Job stillschweigend verschwindet.
  • Es ist Teil der täglichen Backups, wie Ihre übrigen Dateien.
  • Den Arbeitsspeicher wählen Sie selbst: standardmäßig 64 MB, bis zu 128 MB in Avanza, 256 MB in Max und 512 MB in Elastic. Queues und Sessions brauchen wenig Platz: 64 MB reichen für die meisten Anwendungen.

Wenn ein bestimmter Einsatzzweck es erfordert, können Sie beide Verhaltensweisen ändern: die Persistenz abschalten oder es beim Volllaufen die am wenigsten genutzten Schlüssel verwerfen lassen.

Aktivieren und verbinden

Aktiviert wird es unter Hosting → Ihr Dienst → Paketmanager, in der Karte Persistentes Redis. Dort sehen Sie auch den belegten Arbeitsspeicher und den Platz auf der Festplatte und können die Einstellungen ändern, es neu starten, leeren oder deaktivieren.

Die Verbindung läuft über einen Socket und ohne Passwort, da nur der Benutzer Ihres Kontos darauf zugreifen kann. In Laravel sind das ein paar Zeilen in der .env, mit Ihrem cPanel-Benutzer anstelle von USUARIO:

REDIS_CLIENT=phpredis
REDIS_HOST=/home/USUARIO/.hostsuar/redis/redis.sock
REDIS_PORT=0

QUEUE_CONNECTION=redis
SESSION_DRIVER=redis

Sie können beide Redis gleichzeitig nutzen: den Cache im gewohnten Redis und Queues und Sessions im persistenten. Wie Sie sie in config/database.php trennen, steht im Leitfaden.

Endlich Horizon

Horizon braucht zwei Dinge: Queues in Redis und einen Prozess, der es am Laufen hält. Das Erste ist das persistente Redis, das Zweite sind die dauerhaften Prozesse, die gleichzeitig erscheinen. Mit beiden läuft Horizon auf Ihrem Hosting, mit Dashboard und Metriken.

Beachten Sie, dass das persistente Redis als weiterer Prozess Ihres Kontos innerhalb seiner Ressourcen läuft und einen der Plätze für dauerhafte Prozesse des Tarifs belegt: In Avanza belegen Redis und Horizon zwei der drei.

Die Schritt-für-Schritt-Anleitung, mit der Verbindung aus Laravel, der Nutzung zusammen mit dem Cache-Redis und der Installation von Horizon, finden Sie im Leitfaden zum persistenten Redis.

Wir arbeiten weiter an Verbesserungen.

Sehen Sie, woran wir gerade arbeiten, oder schreiben Sie uns, wenn Ihnen etwas fehlt.