Murmur adalah keluarga fungsi hashing tujuan umum yang baik, cocok untuk penggunaan non-kriptografi. Seperti yang dinyatakan oleh Austin Appleby, MurmurHash memberikan manfaat sebagai berikut:
- sederhana (dalam hal jumlah instruksi perakitan yang dihasilkan).
- distribusi yang baik (lulus uji chi-kuadrat untuk hampir semua keyset &ukuran bucket.
- perilaku longsoran salju yang baik (bias maksimal 0,5%).
- ketahanan benturan yang baik (lulus uji siksaan katak.c Bob Jenkin. Tidak ada benturan yang mungkin terjadi untuk kunci 4-byte, tidak ada perbedaan kecil (1- hingga 7-bit).
- kinerja hebat pada perangkat keras Intel/AMD, tradeoff yang baik antara kualitas hash dan konsumsi CPU.
Anda pasti dapat menggunakannya untuk hash UUID (seperti fungsi hashing lanjutan lainnya:CityHash, Jenkins, Paul Hsieh, dll ...). Sekarang, bitset Redis dibatasi hingga 4 GB bit (512 MB). Jadi, Anda perlu mengurangi 128 bit data (UUID) menjadi 32 bit (nilai hash). Apa pun kualitas fungsi hashing, akan ada tabrakan.
Menggunakan fungsi hash yang direkayasa seperti Murmur akan memaksimalkan kualitas distribusi, dan meminimalkan jumlah tabrakan, tetapi tidak memberikan jaminan lain.
Berikut adalah beberapa tautan yang membandingkan kualitas fungsi hash tujuan umum:
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/