Servers and keys hashed onto one ring; each key goes to the first server clockwise. Adding or removing a server moves only the keys next to it, and virtual nodes even out the load.
This interactive visualization needs JavaScript.