/System Design /Consistent Hashing ← All Designs

Consistent Hashing

Minimize data remapping when servers join or leave the cluster

Distributed SystemsHorizontal ScalingRedis ClusterDHT
🎮 What you can do
  • Drag Servers slider or use + / − buttons
  • Toggle Virtual Nodes to balance load
  • Increase Keys to see distribution patterns
👁 What to watch
  • Colored ring sectors = server ownership
  • Amber dots = keys that just remapped
  • More virtual nodes → more even sectors
Servers 4
28
Virtual Nodes / Server
1 node — uneven distribution likely
Keys on Ring 20
550
Actions
Last Change
Add or remove a server to see remapping
Colored sectors = server ownership · hover any element for details
Just remapped
90° 180° 270° Hash Ring 0 → 2³² 20 keys
Server Legend
20
Keys
4
Servers
4
Ring Nodes
Remapped
How it works
  1. Hash space 0 → 2³² forms a circle
  2. Servers hash to positions on the ring
  3. A key maps to its next clockwise server
  4. Add/remove a server → only ~1/N keys move
  5. Virtual nodes = multiple ring positions per server
Without consistent hashing
Adding 1 server remaps N/(N+1) ≈ all keys
With consistent hashing
Adding 1 server remaps only ~1/N keys
📦 When to Use
Redis Cluster, Amazon Dynamo, Cassandra token ring, CDN routing, peer-to-peer DHTs. Any system where servers join or leave frequently.
⚖️ Trade-offs
Virtual nodes improve balance but use more memory to store ring positions. Hot spots can still occur. Ring traversal is O(log N) with sorted structures.
💡 Interview Tip
"Without it, adding 1 server remaps nearly all keys. With consistent hashing, only ~1/N move. Virtual nodes solve uneven distribution."