We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent b3ab980 commit 3ff4b29Copy full SHA for 3ff4b29
1 file changed
MD/Consistent-Hash.md
@@ -0,0 +1,18 @@
1
+# 一致 Hash 算法
2
+
3
+当我们在做数据库分库分表或者是分布式缓存时,不可避免的都会遇到一个问题:
4
5
+如何将数据均匀的分散到各个节点中,并且尽量的在加减节点时能使受影响的数据最少。
6
7
+## Hash 取模
8
+随机放置就不说了,会带来很多问题。通常最容易想到的方案就是 `hash 取模`了。
9
10
+可以将传入的 Key 按照 `index = hash(key) % N` 这样来计算出需要存放的节点。其中 hash 函数是一个将字符串转换为正整数的哈希映射方法,N 就是节点的数量。
11
12
+这样可以满足数据的均匀分配,但是这个算法的容错性和扩展性都较差。
13
14
+比如增加或删除了一个节点时,所有的 Key 都需要重新计算,显然这样对成本较高,为此需要一个算法满足分布均匀同时也要有良好的容错性和拓展性。
15
16
+## 一致 Hash 算法
17
18
+一致 Hash 算法
0 commit comments