Rumah > Soal Jawab > teks badan
redis、memcache、mongoDB有哪些区别?例如:性能、可靠性、数据一致性等方面的区别。
PHP中文网2017-04-22 08:58:35
Kandungan berikut adalah daripada ringkasan rakan sekerja, disiarkan untuk dikongsi:
Memcached
Kelebihan Memcached:
Memcached boleh memanfaatkan berbilang teras, dan daya pemprosesan satu contoh adalah sangat tinggi, yang boleh mencapai ratusan ribu QPS (bergantung pada saiz bait kunci dan nilai dan prestasi perkakasan pelayan, QPS puncak dalam persekitaran harian adalah kira-kira 4-6w). Sesuai untuk kapasiti bawaan maksimum.
Menyokong konfigurasi langsung sebagai pemegang sesi.
Beberapa perangkap.
Batasan Memcached:
Ia hanya menyokong struktur data kunci/nilai mudah, tidak seperti Redis yang boleh menyokong jenis data yang kaya.
Ia tidak boleh diteruskan, data tidak boleh disandarkan, ia hanya boleh digunakan untuk caching, dan semua data akan hilang selepas dimulakan semula.
Penyegerakan data tidak boleh dilakukan dan data dalam MC tidak boleh dipindahkan ke kejadian MC lain.
Peruntukan memori memcached menggunakan mekanisme Peruntukan Slab untuk mengurus memori Perbezaan besar dalam pengedaran saiz nilai akan menyebabkan penggunaan memori berkurangan, dan boleh membawa kepada masalah seperti menendang keluar walaupun penggunaan rendah. Pengguna perlu memberi perhatian kepada reka bentuk nilai.
Redis
Kelebihan Redis:
Menyokong pelbagai struktur data, seperti rentetan (rentetan), senarai (senarai pautan berganda), dict (jadual cincang), set (set), zset (set diisih), hyperloglog (anggaran kardinaliti)
Menyokong operasi kegigihan, dan boleh mengekalkan data AOF dan RDB ke cakera untuk sandaran data atau operasi pemulihan data, yang merupakan cara yang lebih baik untuk mengelakkan kehilangan data.
Menyokong replikasi data melalui Replikasi Melalui mekanisme master-slave, replikasi segerak masa nyata boleh dilakukan.
Permintaan berbenang tunggal, semua arahan dilaksanakan secara bersiri, dan tidak perlu mempertimbangkan isu konsistensi data dalam situasi serentak.
Menyokong mekanisme langganan mesej pub/sub, yang boleh digunakan untuk langganan dan pemberitahuan mesej.
Ia menyokong keperluan transaksi mudah, tetapi terdapat beberapa kes penggunaan dalam industri dan ia tidak matang.
Batasan Redis:
Redis hanya boleh menggunakan satu utas, dan prestasinya dihadkan oleh prestasi CPU Oleh itu, satu contoh CPU boleh mencapai maksimum 5-6w QPS sesaat (bergantung pada struktur data, saiz data dan prestasi perkakasan pelayan. Puncaknya. QPS dalam persekitaran harian adalah kira-kira 1-2w).
Ia menyokong keperluan transaksi yang mudah, tetapi terdapat beberapa senario penggunaan dalam industri dan ia tidak matang, yang mempunyai kedua-dua kelebihan dan kekurangan.
Redis menggunakan lebih banyak memori pada jenis rentetan Anda boleh menggunakan dict (jadual cincang) untuk memampatkan storan untuk mengurangkan penggunaan memori.
:) Berikut adalah tambahan peribadi saya
Kedua-dua Mc dan Redis ialah jenis Nilai Kunci, yang tidak sesuai untuk mewujudkan perhubungan antara set data yang berbeza, dan juga tidak sesuai untuk carian pertanyaan. Contohnya, operasi pemadanan kekunci redis corak ialah bencana untuk prestasi redis.
Mogodb
mogodb ialah pangkalan data dokumen. Biar saya jelaskan dahulu pangkalan data dokumen, yang boleh menyimpan data jenis xml, json dan bson. Data ini menerangkan sendiri dan membentangkan struktur data seperti pokok hierarki. Redis boleh menggunakan hash untuk menyimpan data hubungan mudah.
mogodb menyimpan data format json.
Senario yang sesuai: rakaman acara, pengurusan kandungan atau platform blog, seperti sistem ulasan.
Nosq pada masa ini mempunyai banyak produk, dan pilihan arkitek terutamanya didorong oleh dua faktor berikut:
1) Sesuai untuk senario penggunaan aplikasi Contohnya, sistem komen lebih sesuai untuk menggunakan mogodb, dan mc juga boleh dilaksanakan (aplikasi menukar data ke dalam json dan menyimpannya, tetapi menyusahkan untuk mengemas kini beberapa data)
2) Pasukan membangunkan teknologi yang biasa kepada mereka Contohnya, pasukan telah menggunakan mc, jadi terhad untuk memilih mc dan bukannya redis.
Terdapat juga situasi sederhana hingga serius di mana pasukan pembangunan telah menggunakan mogodb dan terus memilih mogodb dalam senario yang sesuai untuk kv nosq.
Buku disyorkan kepada semua orang: <NoSQL Essence>
黄舟2017-04-22 08:58:35
Redis dan memcache ialah dua mekanisme caching, terutamanya digunakan untuk mengurangkan tekanan pangkalan data dan meningkatkan kelajuan akses. Redis boleh menyimpan cache ke cakera keras, dan memulakan semula komputer untuk terus memanggilnya. Ia juga mempunyai banyak fungsi yang memcache tidak ada dalam memori, dengan satu fungsi dan kecekapan tinggi. Bagi mongoDB, ini hanyalah pangkalan data