Explain consistent hashing.
Skip to solutionKEEP THE
mediumSystem Design
What is consistent hashing?
832 views
01
Understand the problem
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 Playgroundimport 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.