Hash与Hash一致性

  • 什么是Hash?

    hash就是把任意长度的输入(又叫做预映射),通过散列算法,变换成固定长度的输出,该输出就是散列值。

  • 一致性hash?

    一致性哈希是一种哈希算法:在移除或添加一个结点时,它能够尽可能小地改变已存在key的映射关系。

  • 几个服务器一起工作,其中一个坏掉怎么处理?

    基本思想:使用相同的哈希算法将数据和结点都映射到环形哈希空间中。
    1.把数据映射到Hash空间;
    2.把结点映射到哈希空间:此处的结点就是服务器;
    3.把数据映射到结点(顺时针或者逆时针)。
    移除结点:
    假如nodeB出现问题,根据映射方法,这时受影响的将仅是那些沿nodeB逆时针遍历直到下一个node(假设为nodeA)之间的数据,即本来映射到nodeB上的那些数据。因此这里仅需要变动数据将其重新映射到nodeC上即可。
    虚拟结点:
    虚拟结点是实际结点在哈希空间的复制品,一个实际结点对应了若干虚拟结点,虚拟结点在哈希空间中以哈希值排列。虚拟结点的使用是为了解决分布不平衡而设计的。

你可能感兴趣的:(算法相关)