2017-07-17 91 views
0

我尝试使用下面的参考实现一致的基于哈希算法Java进行分片键的Redis -实现一致性哈希算法在Java中

Stanford Theory on CH

我想了解的最佳方式产生节点和密钥的hascode。目前我使用的DigestUtils生成散列如下& 将返回值到环/圈 -

private BigInteger hash(String key) { 
    return new BigInteger(DigestUtils.md5Hex(key.getBytes()), 16); 
} 

我想知道如果这个做法听起来是正确的。

回答

0

Redisson我们使用xxHash算法对sharded Map和Set对象进行分片。该算法具有较好的分布特性。

下面是实施使用例如通过zero-allocation-hashing LIB提供:

long hash = LongHashFunction.xx().hashBytes(objectState);