# Redis Streams vs Kafka vs RabbitMQ — Redis Pub/Sub & Streams

Source: https://www.skillbyai.com/en/redis-streams/p-compare

> Compare Redis messaging with dedicated brokers on guarantees and operations.

## Similar ideas, different strengths

Redis Streams borrow ideas from **Kafka**: an append-only log, IDs as positions, consumer groups, replay. Differences matter. Kafka stores data **on disk** with replication acknowledged by in-sync replicas, supports **very long retention** cheaply, and scales throughput with many partitions per topic; Redis keeps streams **in memory**, replicates **asynchronously**, and partitions only by using multiple keys. **RabbitMQ** offers rich **routing** (exchanges, bindings), per-message **TTL**, **priorities**, **dead-letter exchanges** and quorum-replicated queues, but replay requires its streams feature. Redis wins on **simplicity and latency** when you already run it, on **mixed workloads** (cache, rate limits, sessions and messaging in one system) and on **small to moderate volumes** with short retention. Choose Kafka for durable, high-volume event logs; RabbitMQ for complex routing and per-message semantics; Redis for lightweight, low-latency messaging with bounded retention.

## Comparison at a glance

Typical characteristics; check current versions and managed offerings.

```text
aspect                 Redis Streams            Kafka                     RabbitMQ
---------------------  -----------------------  ------------------------  ---------------------------
storage                memory (+ AOF/RDB)       disk, replicated log      disk/memory, quorum queues
retention              bounded by RAM           days to forever           until consumed (streams: policy)
replication            asynchronous             ISR acknowledgements      Raft (quorum queues)
consumer groups        yes, PEL + XACK          yes, offsets              competing consumers + acks
routing                by stream key            by topic/partition        exchanges, bindings, headers
latency                very low                 low                       low
best for               light, fast, short-lived durable high-volume logs  rich routing, task queues
```

## Bicycle, truck and courier van

Redis is a bicycle: fast and nimble for short trips in town. Kafka is a freight truck: carries huge loads over long distances. RabbitMQ is a courier van with a sorting system: flexible routes to many addresses. Each is the right choice for a different delivery.

**Quiz:** Which requirement favours Redis Streams over Kafka?

- [ ] Retaining two years of events cheaply
- [x] Very low latency messaging with short retention in an existing Redis deployment
- [ ] Hundreds of partitions of disk-backed data
- [ ] Synchronous replication on every write

*Answer:* Very low latency messaging with short retention in an existing Redis deployment. Redis is ideal for lightweight, low-latency messaging when retention is bounded.
