丰乐

源码分析之groupcache之consistenthash

很多时候读开源的库就是为自己准备大量的代码库,优秀开源项目代码质量比绝大部分人的代理质量都要高。

依赖的库

```
import (
"hash/crc32"
"sort"
"strconv"
)
```

基本的结构
```
type Hash func(data []byte) uint32

type Map struct {
hash Hash
replicas int
keys []int // Sorted
hashMap map[int]string
}

```

结构说明

hash 定义hash函数
replicas计算副本
使用keys存储当前的值的list
hashMap 存储放入的int对应的key

原理

1 对key产生多个副本,计算int值存放到,keys中,同时把hashint对应到key
2 对应每个传入的key,计算hash值,使用二分查找找到key

posted on 2019-03-30 09:11  李蝉儿  阅读(164)  评论(0编辑  收藏  举报

导航