我一直在试图得到一个什么样的高度认识murmur哈希一样。
我读过的基本描述,但还没有找到的时候使用它,为什么一个很好的解释。 我知道它的速度非常快,但想知道更多一点。
我问了一个相关的问题 ,我怎么能适应UUID成Redis的位集合,并使用murmur哈希有人建议。 它的工作原理,但我想了解风险/收益。
我一直在试图得到一个什么样的高度认识murmur哈希一样。
我读过的基本描述,但还没有找到的时候使用它,为什么一个很好的解释。 我知道它的速度非常快,但想知道更多一点。
我问了一个相关的问题 ,我怎么能适应UUID成Redis的位集合,并使用murmur哈希有人建议。 它的工作原理,但我想了解风险/收益。
杂音是良好的通用散列函数,适用于非加密使用一个家庭。 正如奥斯汀·阿普尔比说,murmur哈希提供了以下好处:
你当然可以用它来凑的UUID(像任何其他先进的散列函数:CityHash,詹金斯,保罗谢长廷,等...)。 现在,Redis的位集被限制为4 GB位(512 MB)。 所以需要减少数据(UUID)的128位至32位(散列值)。 无论哈希函数的质量,就会有冲突。
使用像杂音的工程哈希函数将最大限度地分布的质量,最大限度地减少冲突的数量,但它不提供其他担保。
这里有一些链接比较通用Hash函数的质量:
http://www.azillionmonkeys.com/qed/hash.html
http://www.strchr.com/hash_functions
http://blog.aggregateknowledge.com/2011/12/05/choosing-a-good-hash-function-part-1/
http://blog.aggregateknowledge.com/2011/12/29/choosing-a-good-hash-function-part-2/
http://blog.aggregateknowledge.com/2012/02/02/choosing-a-good-hash-function-part-3/
我知道我这么晚才回复,但它可以帮助任何其他人...
杂音哈希是一个非加密散列函数 ,其用于基于散列查找窗口 ,它采用3个基本操作作为一个整体乘 , 旋转和XOR 。 它采用多种常量这只是有通过将2次基本的测试,使其良好的散列函数。
你可以看这个视频,我提出,为杂音散列的详细解释。