J'ai essayé d'obtenir une compréhension de haut niveau de ce que fait MurmurHash .
J'ai lu une description de base mais je n'ai pas encore trouvé de bonne explication sur le moment de l'utiliser et pourquoi. Je sais que c'est très rapide mais je veux en savoir un peu plus.
J'ai demandé à une --- question comment je pouvais adapter un UUID dans un jeu de bits Redis, et quelqu'un a suggéré d'utiliser MurmurHash. Cela fonctionne, mais j'aimerais comprendre les risques/avantages.
Murmur est une famille de bonnes fonctions de hachage à usage général, adaptées à une utilisation non cryptographique. Comme l'a déclaré Austin Appleby, MurmurHash offre les avantages suivants:
Vous pouvez certainement l'utiliser pour hacher des UUID (comme toutes les autres fonctions de hachage avancées: CityHash, Jenkins, Paul Hsieh's, etc ...). Désormais, un jeu de bits Redis est limité à 4 Go (512 Mo). Vous devez donc réduire 128 bits de données (UUID) à 32 bits (valeur hachée). Quelle que soit la qualité de la fonction de hachage, il y aura des collisions.
L'utilisation d'une fonction de hachage conçue comme Murmur maximisera la qualité de la distribution et minimisera le nombre de collisions, mais elle n'offre aucune autre garantie.
Voici quelques liens comparant la qualité des fonctions de hachage à usage général:
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/
Je sais que je réponds tard, mais cela peut aider quelqu'un d'autre ...
Murmure haché est une fonction non cryptographique fonction de hachage qui est utilisée pour recherches basées sur le hachage , elle utilise 3 opérations de base dans leur ensemble Multiplier , Rotation et XOR . Il utilise plusieurs constantes qui sont juste là pour en faire une bonne fonction de hachage en passant 2 tests de base.
Vous pouvez regarder cette vidéo, que j'ai faite, pour l'explication détaillée de Murmur Hashing.