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

Apa mesin database berorientasi dokumen yang paling efisien untuk menyimpan ribuan dokumen berukuran sedang?

Itu sangat tergantung pada kasus penggunaan tertentu. Jika Anda ingin dapat menanyakan dokumen Anda pada sesuatu selain ID mereka, maka Anda tidak boleh memilih Redis. Dengan Redis Anda harus menerapkan skema pengindeksan Anda sendiri, dan itu tidak perlu.

Sebenarnya ada sangat sedikit kasus di mana Redis akan menjadi pilihan yang lebih baik untuk apa yang menurut saya kasus penggunaan Anda (bukan berarti ada yang salah dengan Redis, saya sering menggunakan Redis dan Mongo, tetapi untuk hal yang berbeda). Bagi saya sepertinya Anda memiliki objek yang dapat direpresentasikan sebagai hash. Baik Mongo dan Redis dapat menyimpan hash, tetapi Mongo dapat melakukan lebih banyak lagi. Dengan Mongo Anda dapat mencari dokumen di salah satu bidangnya, Anda dapat menambahkan indeks untuk mempercepatnya, dan bidang tersebut bahkan tidak harus berupa string, dapat berupa angka, tanggal, daftar, bahkan dokumen (atau daftar dokumen), dan semua dokumen tidak harus masuk ke dalam RAM (walaupun itu akan berubah ketika fitur diskstore Redis selesai). Redis tidak memiliki semua itu. Anda harus mengimplementasikan indeks sendiri untuk dapat mencari, Anda tidak dapat menyimpan apa pun selain string (yang terkadang sangat merepotkan), dan Anda tidak dapat menyimpan apa pun selain hash datar (tanpa menggunakan atau menggunakan semacam pemetaan lapisan seperti Ohm).

Anda juga menyebutkan kecepatan. Redis sangat cepat, dan Mongo juga tidak buruk, namun, untuk kasus penggunaan Anda menggunakan Mongo mungkin lebih cepat. Perhatikan saya katakan menggunakan Mongo, bukan berarti Mongo sendiri akan lebih cepat. Masalahnya adalah, jika Anda menggunakan Redis dan masih ingin dapat mencari dokumen menggunakan bidang yang bukan kunci utama, Anda, seperti yang saya sebutkan di atas, harus mengimplementasikannya sendiri. Pencarian kemudian harus membuat setidaknya dua permintaan ke Redis, satu untuk mencari di indeks, dan satu lagi untuk mendapatkan dokumen. Jika pencarian menghasilkan lebih dari satu dokumen, Anda harus membuat permintaan untuk setiap dokumen satu per satu. Overhead membuat semua permintaan ini mungkin akan membuat penggunaan Redis lebih buruk daripada menggunakan Mongo. Menurut pengalaman saya, apa pun selain cache, antrean, atau serupa yang paling sederhana perlu membuat lebih dari satu permintaan ke Redis untuk mendapatkan semua yang dibutuhkannya.

Jadi, dengan informasi terbatas yang saya miliki, saya merekomendasikan MongoDB.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Antrian demokrasi di Sidekiq

  2. Mengapa kunci Redis tidak kedaluwarsa?

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

  4. Bagaimana cara men-deploy node.js dengan redis di kubernetes?

  5. Bagaimana menghubungkan kembali klien redis setelah server redis reboot/skala