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

Basis data NoSQL mana untuk volume data yang sangat tinggi

Saya memiliki pengalaman dengan Redis dan MongoDB, tetapi tidak akan merekomendasikan keduanya untuk kasus penggunaan Anda. Redis luar biasa dalam segala hal, tetapi karena hanya RAM dan tidak memiliki fitur pengelompokan (belum, mereka sedang dalam pengembangan), itu tidak skala dengan baik. MongoDB Saya tidak akan pernah menggunakan lagi untuk apa pun yang membutuhkan apa pun kecuali set replika kecil.

Pada dasarnya, MongoDB belum matang dan sama sekali tidak cocok untuk segala jenis volume tinggi, persyaratan kinerja tinggi. Ini memiliki kunci tulis global yang ditahan selama penggelontoran disk, yang berarti bahwa kinerja dapat sangat bervariasi tergantung pada apa yang Anda lakukan. Dalam praktiknya itu membuat pembaruan yang menumbuhkan dokumen menjadi tidak mungkin, dan Anda juga harus sangat berhati-hati dengan penghapusan. Berbicara tentang penghapusan, mereka memecah basis data secara parah, jadi jika Anda melakukan banyak penghapusan, kinerja Anda akan menurun.

Sharding di 1.8.0 hingga 1.8.1 adalah bencana. Ada bug show stopper lengkap yang seharusnya tidak pernah dibuat menjadi rilis yang stabil. Konfigurasi tidak di-flush dengan benar dan sangat mudah untuk membuat database Anda dalam keadaan buruk sehingga potongan tidak pernah dipindahkan dari shard utama. 1.8.2 menyelesaikan sebagian besar dari mereka dan tampaknya lebih stabil, tetapi saya tidak mempercayai implementasi sharding sedikit pun. Tambahkan ke ini bahwa sharding sulit bahkan ketika semuanya bekerja, tidak selalu mudah untuk memilih kunci shard alami, dan jika Anda tidak sharding akan menyebabkan Anda banyak kesedihan.

MongoDB sangat mudah digunakan dan set fiturnya sangat bagus. Dokumentasi, driver, dan komunitas semuanya hebat. MongoDB berfungsi sangat baik sebagai pengganti MySQL, tetapi jangan menggunakannya untuk apa pun yang perlu ditingkatkan.

Kami sedang mencari pindah ke Cassandra. Saya menemukan model dinamo (misalnya tidak ada node master; menulis dan membaca di mana saja; cukup tambahkan node untuk menumbuhkan cluster) menarik dan fitur-fiturnya kurang lebih tepat untuk kami. Model data skema kurang seperti MongoDB, meskipun sedikit lebih terbatas (Anda dapat memilih antara satu atau dua tingkat hash, pada dasarnya). Saya yakin komunitasnya bagus setelah Anda masuk ke dalamnya, tetapi sejauh ini saya merasa sulit untuk menemukan informasi yang baik tentang cara memecahkan masalah umum, dan dokumentasinya kurang. Sebagian besar informasi yang Anda temukan di blog berumur satu tahun, dan banyak hal telah terjadi sejak saat itu (0,7 dan 0,8 tampaknya merupakan pembaruan yang sangat signifikan, tetapi kebanyakan hal yang Anda temukan adalah sekitar 0,6). Drivernya juga tidak terlalu matang atau terdokumentasi dengan baik, dari apa yang saya lihat sejauh ini, dan semua orang tampaknya bertengkar tentang apakah Hemat, Avro atau CQL yang harus digunakan (dan itu telah berubah dari 0,6 menjadi 0,7 menjadi 0,8) .

Riak menarik, untuk alasan yang sama seperti Cassandra, tetapi bagi kami penyimpanan nilai kunci murni tidak cukup, kami harus dapat memperbarui tanpa terlebih dahulu melakukan pembacaan. Dengan Riak ini tidak mungkin karena nilainya hanya gumpalan. Sepertinya ini tidak akan menjadi masalah bagimu.

HBase adalah pesaing lain. Sepertinya sulit untuk mengatur dan menjalankannya karena banyak bagian yang berbeda, ZooKeeper, HDFS, dll. Tetapi model datanya mirip dengan Cassandra (kolom, yaitu hash satu tingkat), yang bekerja dengan baik untuk kita, tetapi mungkin tidak penting bagi Anda. Tampaknya dicoba dan benar, tetapi seperti MongoDB Anda harus berhati-hati terhadap masalah sharding, Anda harus memikirkan kunci Anda atau Anda mendapat masalah.

Ada juga CouchDB, Project Voldemort dan banyak pilihan lain yang mungkin. Saya pikir jika Anda serius tentang "volume data yang sangat tinggi" maka itu antara Cassandra, Riak dan HBase. Pukul Riak jika penyimpanan nilai kunci murni tidak cukup. Bergantung pada apa yang Anda maksud dengan "replikasi yang sepenuhnya konsisten" maka Cassandra dan Riak keluar, karena ada kemungkinan (belum tentu besar, dan merdu) untuk membaca nilai basi.

Pada akhirnya Anda jelas harus mencobanya pada kasus penggunaan khusus Anda, jadi yang benar-benar harus Anda ambil dari jawaban ini adalah:jangan repot-repot dengan MongoDB.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis auth error dengan Node.js dan socket.io

  2. Cara memulai pekerja RQ khusus dalam Wadah Docker (Python, Flask, dan Redis)

  3. Azure Redis Cache - Beberapa kesalahan TimeoutException:Timeout melakukan GET {key}

  4. Cara mendapatkan DIFF pada set yang diurutkan

  5. Penerbit node redis menghabiskan terlalu banyak memori