Vấn đề với hash chia dư đơn giản (hash(key) % N): khi số node N thay đổi (thêm/bớt server), gần như mọi key bị ánh xạ lại sang node khác → cache trống hàng loạt, phải di chuyển lượng dữ liệu khổng lồ. Rất tệ khi cluster co giãn thường xuyên.
Consistent hashing đặt cả key và node lên một vòng băm (hash ring). Mỗi key thuộc về node kế tiếp theo chiều kim đồng hồ trên vòng. Khi thêm/bớt một node, chỉ các key nằm giữa node đó và node liền trước bị ánh xạ lại — trung bình chỉ khoảng 1/N số key phải di chuyển, phần còn lại giữ nguyên.
Virtual node (mỗi node vật lý xuất hiện nhiều điểm trên vòng) giúp cân bằng tải đều hơn và giảm lệch khi node có sức chứa khác nhau.
Ứng dụng: distributed cache (Memcached client), database phân tán (Cassandra, DynamoDB) để phân bổ partition, và load balancer cần giữ client về đúng node. Đây là công cụ nền tảng để cluster co giãn mượt mà không phải xáo trộn toàn bộ.