Redis als mehr als Cache: Queues, Sessions und Pub/Sub
Redis wird oft auf Caching reduziert. Dabei bietet es leistungsstarke Datenstrukturen für Queues, Sessions, Rate Limiting und Echtzeit-Messaging.
Redis: Ein Schweizer Taschenmesser
Redis ist ein In-Memory Data Store mit Sub-Millisekunden-Latenz. Aber es ist weit mehr als ein Key-Value-Cache — die eingebauten Datenstrukturen machen es zu einem vielseitigen Werkzeug.
Queues mit Redis
Laravel Horizon nutzt Redis Lists und Sorted Sets für Job Queues. Die Vorteile gegenüber Datenbank-Queues:
- Performance: Redis verarbeitet Millionen von Jobs pro Sekunde — keine Datenbank-Locks, kein Polling.
- Prioritäten: Mehrere Queues mit konfigurierbaren Worker-Zuweisungen.
- Monitoring: Horizon Dashboard mit Echtzeit-Einblick in Queue-Auslastung und Fehler.
Sessions und Rate Limiting
- Sessions: Redis Sessions sind schneller als Datenbank-Sessions und überleben Deployments (anders als File-Sessions).
- Rate Limiting: Redis INCR mit TTL ist die Basis für Laravel's Rate Limiter — atomar und schnell.
- Distributed Locks:
Cache::lock()nutzt Redis für Mutex-Operationen über mehrere Server hinweg.
Pub/Sub und Streams
- Pub/Sub: Echtzeit-Messaging zwischen Services — ideal für Laravel Broadcasting mit Websockets.
- Streams: Persistent Message Queues mit Consumer Groups — ähnlich wie Kafka, aber einfacher zu betreiben.
Unsere Empfehlung
In jedem Laravel-Projekt setzen wir Redis ein — mindestens für Cache und Sessions, oft auch für Queues und Broadcasting. Mit Redis Sentinel oder Cluster ist auch Hochverfügbarkeit kein Problem.
Fragen zu diesem Thema?
Wir beraten Sie gerne zu den in diesem Artikel beschriebenen Technologien und Lösungen.
Kontakt aufnehmen