2017-07-17 4 views
0

で一貫したハッシュアルゴリズムを実装ノードと鍵のためのhascode。私はシャーディングキーはRedisのためには、以下の参照を使用してJavaで一貫したハッシュベースのアルゴリズムを実装しようとしていたJava

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

私はこのアプローチが正しい聞こえるかどうかを知りたかった - リング/円に返された値を加算し& を次のように現在、私はハッシュを生成するためにDigestUtilsを使用しています。

答えて

0

Memcacheのソースコードspymemcached clientを見ると、そのクライアントがKetamaの整合性のあるハッシュアルゴリズムをどのように実装しているかが分かります。具体的には、原則は同じですRedisのためではないものの

:以下のファイルに焦点を当てています。

0

Redissonでは、Sharded MapオブジェクトとSetオブジェクトに対してxxHashアルゴリズムを使用します。このアルゴリズムはより良い分布特性を有する。ここ

zero-allocation-hashing LIBによって提供された実装での使用例である:

long hash = LongHashFunction.xx().hashBytes(objectState); 
関連する問題