Murmur é uma família de boas funções de hashing de propósito geral, adequadas para uso não criptográfico. Conforme afirmado por Austin Appleby, MurmurHash oferece os seguintes benefícios:
- simples (em termos de número de instruções de montagem geradas).
- boa distribuição (passando nos testes de qui-quadrado para praticamente todos os conjuntos de chaves e tamanhos de baldes.
- bom comportamento de avalanche (viés máximo de 0,5%).
- boa resistência a colisões (passa no teste de tortura frog.c de Bob Jenkin. Não é possível colisões para chaves de 4 bytes, nem diferenciais pequenos (1 a 7 bits).
- ótimo desempenho em hardware Intel/AMD, boa relação entre qualidade de hash e consumo de CPU.
Você certamente pode usá-lo para hash UUIDs (como qualquer outra função avançada de hash:CityHash, Jenkins, Paul Hsieh's, etc ...). Agora, um bitset Redis está limitado a 4 GB de bits (512 MB). Portanto, você precisa reduzir 128 bits de dados (UUID) para 32 bits (valor hash). Qualquer que seja a qualidade da função de hash, haverá colisões.
Usar uma função de hash projetada como Murmur maximizará a qualidade da distribuição e minimizará o número de colisões, mas não oferece outra garantia.
Aqui estão alguns links que comparam a qualidade das funções de hash de uso geral:
http://www.azillionmonkeys.com/qed/hash.html
http://www.strchr.com/hash_functions