redis在Java中实现一致性哈希算法
我正试图用java实现一个一致的基于散列的算法,使用以下参考来将密钥分片到redis-
我试图理解为节点和键生成hascode的最佳方法。目前,我正在使用DigestUtils生成哈希,如下所示&; 将返回值添加到环/圆-
private BigInteger hash(String key) {
return new BigInteger(DigestUtils.md5Hex(key.getBytes()), 16);
}
我想知道这种方法听起来是否正确
# 1 楼答案
Redisson对分片贴图和集合对象使用
highwayhash
算法。该算法具有较好的分布特性下面是引用implementation的使用示例:
# 2 楼答案
如果您查看Memcache的源代码spymemcached client,您可以看到该客户机是如何实现Ketama一致性哈希算法的。关注以下文件:
虽然不是专门针对Redis,但原则是相同的