Sebelum mereka bentuk, sila sahkan saiz data anda:
Jika data anda sangat kecil dan hanya beberapa orang mengundi (kurang daripada 1,000 orang), anda tidak perlu risau Walaupun ia akan berkembang, anda boleh meletakkannya dalam tatasusunan (Perhatikan saiznya daripada dokumen dalam Limitasi mongodb);
Jika bilangan pengundi melebihi 1K, dan apabila ia terus berkembang, mencapai skala W (sepuluh ribu), bebas awal dan buat Koleksi lain untuk menyimpan rekod undian jawatan itu;
Jika bilangan pengundi mencecah W, dan kekerapan mengundi agak kerap (atau terdapat manipulasi undi yang berniat jahat), mungkin anda harus mempertimbangkan untuk menggunakan cache untuk menyimpan ID semua pengundi ke dalam cache terpusat, melalui Cache ( redis asli menyokong Set struktur) untuk mengesahkan sama ada mengundi berulang kali, dan kemudian menyegerakkan ke mongodb secara kerap di latar belakang;
Jika bilangan pengundi mencecah berjuta-juta dan kekerapan mengundi juga objektif, anda mesti menggunakan cache, dan ia juga merupakan kluster cache yang diedarkan, dan mengira ID semua pengundi (anda boleh melakukan operasi mod ) ialah dipetakan ke pelayan cache tertentu, dan kemudian kaedah pemprosesan adalah serupa dengan 3;
Proses yang serupa dengan 4: majukan ID pengguna melalui apache atau nginx pada hujung hadapan pelayan, dan pindahkannya ke pelayan aplikasi lain untuk pemprosesan Pelayan aplikasi juga melakukan pengembangan mendatar yang diedarkan.
PS: Perkara yang anda huraikan hanyalah aspek yang sangat kecil dalam senario perniagaan Tidak kira sama ada anda menggunakan NoSQL atau SQL, apabila skala data meningkat, satu mesin pasti tidak dapat menahannya, dan pengembangan yang diedarkan tidak dapat dielakkan. perlu diingatkan bahawa kerumitan juga meningkat dengan masa yang semakin meningkat, jadi anda perlu memilih pelan secara munasabah berdasarkan saiz data dan keadaan teknikal anda.
Sebelum mereka bentuk, sila sahkan saiz data anda: