假设哈希函数的值空间是100。共有四台服务器,其哈希值分别为20,40,60,80,组成一个哈希环

发布时间:2019-08-07 06:16:28

现有一批不同KEY值的数据要存储到服务器集群上。:

请问,经过一致性哈希算法分配后,每台服务器上,分别存储了哪些KEY值的数据?KEY值: 13, 22, 29, 45,46, 71, 88服务器1:服务器2:服务器3:服务器4:如果服务器2崩溃了,那么,将会发生数据的迁移。请问迁移后,服务器上数据又是如何分布的?(5分)服务器1:服务器2:服务器3:服务器4

推荐回答

哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个...

其他回答

RTest = record  Key:Integer;  Name:String[20];  Sex:Boolean;  Age:Integer;  end;  PTest = ^RTest ;  1:创建Hash表.  ScHash:=THashedStringlist.Create;  2:将数据结构加入Hash表中.  var  Index:Integer;  p_Test:PTest;  Index:=ScHash.IndexOf(IntToStr(p_Test.Key));  if Index=-1 then  begin  ScHash.AddObject(IntToStr(p_Test.Key),TObject(Integer(p_Test)));  end;[/td][/tr][/table]  在加入Hash表的时候,首先我们检查看这个Key是否在Hash表中,如果Index=-1则说明此Key不在Hash表中,则我们将这个结构指针加入到Hash表中.  3:将数据结构从Hash表中删除.[table=95%][tr][td][b]以下是引用片段:[/b]  var  Index:Integer;  t_Object: TObject;  Index:=ScHash.IndexOf(IntToStr(p_Test.Key));  if Index<>-1 then  begin  t_Object:=ScHash.Objects[Index];  ScHash.Delete(Index);  end;[/td][/tr][/table]  4:删除Hash表  在删除Hash表的时候和一般的Tlist删除一样,使用Free.

以上问题属网友观点,不代表本站立场,仅供参考!