data-structures-algorithms:redis-rabbitmq-kafka-data-structure-comparison
Table of Contents
Redis vs RabbitMQ vs Kafka (Data Structure Comparison)
1. Redis
Yes — Redis main data structure is:
- Hashtable (key → value) stored in RAM
Key idea
- Very fast lookup: O(1)
- Works like an in-memory dictionary
Mental model
- Redis = key-value store (like a dictionary / hashmap)
2. RabbitMQ
RabbitMQ is NOT a hashtable system.
It is a message queue system.
Core structure
- FIFO Queue (First In First Out)
- Internally uses queue buffers (Erlang ETS tables + disk storage)
How it works
Producer → Exchange → Queue → Consumer
Inside the queue:
- Messages are stored in order (FIFO)
- Stored in memory first, then disk if durable
Key idea
- RabbitMQ = queue-based message broker
- Not key-value lookup
- You do NOT query messages by key
3. Kafka
Kafka is NOT a hashtable and NOT a queue.
It is an append-only distributed log system.
Core structure
- Append-only log file
- Each topic contains partitions
- Each partition is a sequence of messages
Example:
offset 0 → msg1 offset 1 → msg2 offset 2 → msg3
How it works
Producer → Topic → Partition Log → Consumer reads by offset
Key idea
- Kafka = distributed commit log
- Consumers read using offsets (like file pointers)
Comparison Table
| System | Core Structure | Storage Type | Access Style |
|---|---|---|---|
| Redis | Hashtable | RAM | Key-based lookup |
| RabbitMQ | FIFO Queue | RAM + Disk | Message consumption |
| Kafka | Append-only log | Disk | Offset-based read |
Simple Mental Model
- Redis → Dictionary (key-value store)
- RabbitMQ → Waiting line (queue)
- Kafka → Log book (append-only journal)
data-structures-algorithms/redis-rabbitmq-kafka-data-structure-comparison.txt · Last modified: by phong2018
