User Tools

Site Tools


data-structures-algorithms:redis-rabbitmq-kafka-data-structure-comparison

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