1.余数哈希: 根据服务器台数的余数进行哈希,求得键的哈希值,再处理服务器台数,根据余数选择服务器,
缺点:当添加或者移除服务器时,缓存重组的代价太大,当添加服务器, 要进行重哈希,会导致原来的服务器序号变了,下一次找不到, 访问数据,Memcached命中率下降,那么就增加了数据库服务器的负载.
2.一致性哈希: 一致性哈希是将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数H的值空间是0~(2^32 -1)(即哈希值是一个32位的无符号整型),这个哈希空间为环 。 然后让每台机器占一个扇形空间。
举个例子:余数哈希相当于一个萝卜一个坑,刚刚好,这时候在中间新挖一个坑,下一次去拿的时候会按照原有逻辑,会导致最后一个有萝卜的坑没被拿到丢了。一致性哈希就是这100米内都来这个坑挖,100米之后的去下一个坑,这时候新挖一个坑,重新调整一些空间给新的坑就行,不至于数据全部丢失。