Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

MurmurHash - apa itu?

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/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengapa redis tidak dapat mengatur file terbuka maksimum

  2. Komunikasi waktu nyata antara aplikasi dan halaman web

  3. Perbarui entitas di redis dengan spring-data-redis

  4. Redis dimulai secara manual dengan init.d tetapi tidak saat startup

  5. Redis, bagaimana cara meningkatkan semua skor zset dengan ZINCRBY?