这是一种非加密的Hash,其目的并不是加大找到碰撞的难度。作为一种非加密的Hash算法,它更快,占用空间更小。但是他的碰撞几率是比较高的。

MurmurHash 3 128 位版本的速度是 MD5 的十倍。MurmurHash 3 生成 32 位哈希的用时比生成 128 位哈希的用时要长。原因在于生成 128 位哈希的实现受益于现代处理器的特性。32 位哈希值发生碰撞的可能性就比 128 位的要高得多,当数据量达到十万时,就很有可能发生碰撞。

对于规律性较强的key,MurmurHash的随机分布特征表现更良好。Redis在实现字典时用到了两种不同的哈希算法,MurmurHash便是其中一种(另一种是djb),在Redis中应用十分广泛,包括数据库、集群、哈希键、阻塞操作等功能都用到了这个算法。


一个Murmur的示例