一致哈希算法
如何使用一致哈希算法实现哈希寻址
我们一起来看一个例子,对于1000万个key的3节点KV存储,如果我们使用一致哈希算法增加1个节点,即3节点集群变为4节点集群,则只需要迁移24.3%的数据,如代码所示
package main
import (
"flag"
"fmt"
"log"
"stathat.com/c/consistent"
"strconv"
)
var keysPtr = flag.Int("keys", 10000, "key number")
var nodesPtr = flag.Int("nodes", 3, "node number of old cluster")
var newNodesPtr = flag.Int("new-nodes", 4, "node number of new cluster")
func hash(key int, nodes int) int {
return key % nodes
}
func main() {