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

Perbandingan kinerja menggunakan hash Redis vs banyak kunci

Memilih hash di atas string memiliki banyak manfaat dan beberapa kelemahan tergantung pada kasus penggunaan. Jika Anda akan memilih hash, lebih baik untuk mendesain objek json Anda sebagai bidang &nilai hash seperti;

127.0.0.1:6379> hset user:1 ssn 10101010101 name john surname wick date 2020-02-02 location continental
(integer) 5
127.0.0.1:6379> hgetall user:1
 1) "ssn"
 2) "10101010101"
 3) "name"
 4) "john"
 5) "surname"
 6) "wick"
 7) "date"
 8) "2020-02-02"
 9) "location"
10) "continental"

Berikut adalah manfaat dari hash lebih dari string saat Anda melakukan pemodelan data yang tepat.

  • Di sisi performa, sebagian besar perintah untuk string dan hash memiliki kompleksitas yang sama.
  • Mengakses/memperbarui/menghapus masing-masing bidang json pada hash lebih mudah jika dibandingkan dengan string. Anda tidak perlu mendapatkan seluruh string, decode, membuat perubahan dan mengaturnya lagi. Anda dapat menggunakan HDEL, HSET, atau HGET untuk operasi tersebut tanpa mendapatkan keseluruhan objek.
  • Jika ukuran objek string Anda bertambah, Anda akan menderita jaringan dan bandwidth saat mentransfer (mendapatkan/mengatur) seluruh objek. Seperti yang dinyatakan dalam dokumentasi

Kecepatan RAM dan bandwidth memori tampaknya kurang penting untuk kinerja global terutama untuk objek kecil. Untuk objek besar (>10 KB), mungkin akan terlihat.

  • Hash lebih ramah memori daripada string jika Anda membuat tolok ukur yang baik untuk mendesain ukuran data Anda. Seperti yang dinyatakan dalam dokumentasi dan contoh kasus penggunaan oleh teknik instagram, Anda mungkin mendapatkan manfaat besar dengan pengkodean khusus.

Hash, Daftar, Himpunan yang hanya terdiri dari bilangan bulat, dan Kumpulan Terurut, ketika lebih kecil dari sejumlah elemen tertentu, dan hingga ukuran elemen maksimum, dikodekan dengan cara yang sangat hemat memori yang menggunakan memori hingga 10 kali lebih sedikit (dengan 5 waktu lebih sedikit memori yang digunakan sebagai penghematan rata-rata).

Di sisi lain, tergantung pada kasus penggunaan Anda;

  • ziplist tidak gratis, ini adalah pertukaran antara memori dan cpu.
  • Anda tidak dapat kedaluwarsa sebagian bidang hash. Jika Anda membagi menjadi beberapa string maka Anda dapat EXPIRE mereka tetapi dalam hash hanya kunci tingkat atas yang dapat kedaluwarsa dengan semua nilai.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengubah izin file default di redis dump

  2. Persimpangan Mongodb dengan rentang waktu

  3. Menangani kesalahan jaringan sementara dengan StackExchange.Redis

  4. Redis dikonfigurasi untuk menyimpan snapshot RDB, tetapi saat ini tidak dapat bertahan di disk - Server Ubuntu

  5. Redis Config Set dengan Node jS