Append-only log s consumer groups. Perzistentní alternativa k Pub/Sub.
Základy¶
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
Výhody vs Pub/Sub¶
- Persistence
- Consumer groups
- Acknowledgment
- Replay
Praktické nasazení¶
Redis Streams jsou ideální pro aplikace, které potřebují spolehlivý event streaming bez složitosti Kafky. Consumer groups umožňují distribuovat zpracování mezi více workery — každá zpráva je doručena pouze jednomu consumeru ve skupině. XACK potvrzuje úspěšné zpracování, nepotvrzené zprávy lze číst znovu pomocí XPENDING a XCLAIM.
Typické use cases zahrnují event sourcing, activity feeds, audit logy a task queues. Na rozdíl od List-based front (LPUSH/BRPOP), Streams nabízejí ID-based přístup, automatické trimování pomocí MAXLEN a možnost replay celé historie. Pro malé až střední objemy (tisíce zpráv za sekundu) jsou Streams výbornou alternativou ke Kafce s výrazně jednodušším provozem. Pro velkoobjemové scénáře (miliony zpráv/s) zůstává Kafka lepší volbou.
Streams = Kafka-lite¶
Pro většinu use cases stačí místo Kafky.