Append-Only-Log mit Consumer Groups. Persistente Alternative zu Pub/Sub.
Grundlagen¶
XADD events * type click user_id 123
XRANGE events - + COUNT 10
XLEN events
Consumer Groups¶
XGROUP CREATE events mygroup $ MKSTREAM
XREADGROUP GROUP mygroup consumer1 COUNT 5 BLOCK 2000 STREAMS events >
XACK events mygroup 1234567890-0
Vorteile gegenüber Pub/Sub¶
- Persistenz
- Consumer Groups
- Acknowledgment
- Replay
Praktischer Einsatz¶
Redis Streams sind ideal fuer Anwendungen, die zuverlaessiges Event-Streaming ohne die Komplexitaet von Kafka benoetigen. Consumer Groups ermoeglichen die Verteilung der Verarbeitung auf mehrere Worker — jede Nachricht wird nur einem Consumer in der Gruppe zugestellt. XACK bestaetigt die erfolgreiche Verarbeitung, und nicht bestaetigte Nachrichten koennen mit XPENDING und XCLAIM erneut gelesen werden.
Typische Anwendungsfaelle sind Event Sourcing, Activity Feeds, Audit Logs und Task Queues. Im Gegensatz zu List-basierten Warteschlangen (LPUSH/BRPOP) bieten Streams ID-basierten Zugriff, automatisches Trimming mit MAXLEN und die Moeglichkeit, die gesamte Historie wiederzugeben. Fuer kleine bis mittlere Volumen (Tausende Nachrichten pro Sekunde) sind Streams eine hervorragende Alternative zu Kafka mit deutlich einfacherem Betrieb. Fuer Hochvolumen-Szenarien (Millionen Nachrichten/s) bleibt Kafka die bessere Wahl.
Streams = Kafka-lite¶
Für die meisten Anwendungsfälle ausreichend anstelle von Kafka.