工程师常使用服务器集群来设计和实现数据库的缓存
1. 无论是添加,查询还是删除数据,都先将数据的id通过哈希函数转换成一个哈希值,记为key
2. 如果目前有N台,则计算key%N的值,这个值就是该数据所属于的机器编号,无论是添加,删除,还是查询操作,都只在这台机器上进行。
随着机器数量的变换, 所有的数据都不得不根据id重新计算一遍,并对数据进行迁移操作,这样的代价很高。‘
一致性Hash算法的关键就是不进行取余操作,将机器和数据都均匀分布在环上,将左边最靠近机器的数据,分配给机器。这样在增加机器的时候,只有少量的数据需要迁移。