Consistent hashing đặt node và key lên cùng một vòng hash; key thuộc về node đầu tiên gặp khi đi theo chiều kim đồng hồ. Nhờ vậy thêm/bớt một node chỉ di chuyển khoảng K/N key thay vì xáo trộn toàn bộ như hash(key) % N.
Nhưng với ít node, khoảng cách giữa các điểm trên vòng không đều — hash không rải node đều tự nhiên. Với 3–4 node, chênh lệch tải 30–50% là bình thường; và khi một node chết, toàn bộ phần của nó dồn sang đúng một node kế tiếp, dễ gây sập dây chuyền.
Virtual node (vnode) sửa cả hai: mỗi node vật lý được băm vào vòng thành nhiều điểm (node1#0, node1#1, ..., thường 100–200 điểm).
- Nhiều điểm nhỏ rải đều → phân bố tiệm cận đồng đều.
- Node chết thì phần của nó được chia cho nhiều node còn lại, không dồn vào một chỗ.
- Node có cấu hình mạnh hơn thì cấp nhiều vnode hơn → cân bằng theo trọng số một cách tự nhiên.
Redis Cluster đi theo hướng tương tự nhưng cố định: 16384 hash slot, mỗi node giữ một dải slot, mở rộng cụm là chuyển slot giữa các node.
Vẫn còn giới hạn: vnode chỉ cân bằng theo số lượng key, không cân bằng theo độ nóng. Một key bị truy cập cực nhiều thì dù rải kiểu gì cũng vẫn nằm trên một node — đó là bài toán hot key, phải xử lý riêng.