Ya, ini terkait dengan efisiensi.
Kami meminta masukan kepada Pieter Noordhuis yang selalu membantu, salah satu pengembang inti Redis, dan dia menyarankan agar kami menggunakan hash Redis. Hash di Redis adalah kamus yang dapat dikodekan dalam memori dengan sangat efisien; pengaturan Redis 'hash-zipmap-max-entries' mengonfigurasi jumlah maksimum entri yang dapat dimiliki hash saat masih dikodekan secara efisien. Kami menemukan pengaturan ini yang terbaik sekitar 1000; lebih tinggi dan perintah HSET akan menyebabkan aktivitas CPU yang nyata. Untuk detail lebih lanjut, Anda dapat melihat file sumber zipmap.
Hash kecil dikodekan dengan cara khusus (zipmaps), yang hemat memori, tetapi membuat operasi O(N) bukan O(1). Jadi, dengan satu zipmap dengan 100k bidang, bukan 100 zipmap dengan 1k bidang, Anda tidak memperoleh manfaat memori, tetapi semua operasi Anda menjadi 100 kali lebih lambat.