//default String.GetHashCode() can't well spread strings like "1", "2", "3" static int BetterHash(string key) { //return KetamaHash.Utils.HashAlgorithm.hash(KetamaHash.Utils.HashAlgorithm.computeMd5(key),0); uint hash = MurmurHash2.Hash(Encoding.ASCII.GetBytes(key)); return((int)hash); }
/// <summary> /// 获取指定键的节点。 /// </summary> /// <param name="key">键。</param> /// <returns>返回一个节点。</returns> public TNode GetNode(byte[] key) { if (key == null) { throw new ArgumentNullException("key"); } int hash = (int)MurmurHash2.Hash(key); int first = First_ge(this._keys, hash); return(this._circle[this._keys[first]]); }