Skip to solution
mediumSystem Design

What is consistent hashing?

832 views
01

Understand the problem

Explain consistent hashing.

consistent-hashing
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Nudge consolestandby

Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.

03

Study the solution

What Is Consistent Hashing? (Beginner-Friendly Guide)

Target Audience: Junior & Senior Software Engineers preparing for System Design Interviews — no prior system design knowledge assumed. Difficulty: Medium

How to read this doc: Every concept is explained in plain language first. Right after, you'll

Solution ready — 2 min read

Classified // press E to declassify

04

Read the code

Hash ring with virtual nodes
Run Playground
import hashlib, bisect

class HashRing:
    def __init__(self, nodes, vnodes=100):
        self.vnodes = vnodes
        self.ring = {}          # point_hash -> node
        self.points = []        # sorted hashes
        for n in nodes:
            self.add(n)
    def _h(self, key):
        return int(hashlib.md5(key.encode()).hexdigest(), 16)
    def add(self, node):
        for i in range(self.vnodes):
            h = self._h(node + "#" + str(i))
            self.ring[h] = node
            bisect.insort(self.points, h)
    def get(self, key):
        if not self.ring:
            return None
        h = self._h(key)
        i = bisect.bisect(self.points, h) % len(self.points)  # next clockwise
        return self.ring[self.points[i]]

ring = HashRing(["A", "B", "C", "D"])
for k in ["user:1", "user:2", "cart:9", "img:42"]:
    print(k, "->", ring.get(k))
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.

Transmission complete // awaiting log

KEEP THE
STREAK ALIVE.

Dossier 16 of 99 decoded in the System Design track. One more won't hurt.

Back to track