对于一个分布式的服务系统,有多个数据库,那么当我们客户端需要访问一条数据的时候,我们可以通过哈希函数计算出,这条数据key所对应的所在数据库,而这个过程如果采用一致性哈希,将所有的哈希值想像成一个虚拟的圆环,对于每一个数据库,都分配大量的字符串,并以这字符串,计算出相应的哈希值,将哈希圆环进行分段,这样每个哈希值都由在它最左边的数据库管理,
m1(a1,a2,...,an)、m2(b1,b2,...,bn)、m3(c1、c2,...,cn),m4(d1,d2,...,dn)
如此,在我们需要进行添加数据库时,只需要将原本属于(a1的数据,重新定位到新加的d1中,即可完成),要删除数据库的时候也是同样的原理
此外,我们还可以自由的调控不同能力数据库的数据负载压力,只需要通过控制,对每个数据库分配的字符串数量即可。