Artikel ini akan membawa anda memahami pembahagian Redis, memperkenalkan sebab pembahagian Redis diperlukan, pelan pelaksanaan pembahagian Redis, dan kelemahan pembahagian Redis saya harap ia akan membantu semua orang.
Redis adalah benang tunggal Bagaimana untuk meningkatkan penggunaan CPU berbilang teras?
Anda boleh menggunakan berbilang kejadian Redis pada pelayan yang sama dan menggunakannya sebagai pelayan yang berbeza Pada satu ketika, satu pelayan tidak mencukupi, jadi, Jika anda ingin menggunakan berbilang CPU, anda boleh mempertimbangkan sharding. [Cadangan berkaitan: Tutorial video Redis]
Mengapa kita perlu membahagikan Redis?
Pembahagian membenarkan Redis mengurus memori yang lebih besar, dan Redis akan dapat menggunakan memori semua mesin. Tanpa partition, anda hanya boleh menggunakan sehingga satu memori mesin. Pemisahan membolehkan kuasa pengkomputeran Redis digandakan dengan hanya menambah komputer, dan lebar jalur rangkaian Redis juga akan meningkat secara eksponen dengan penambahan komputer dan kad rangkaian.
Apakah penyelesaian pelaksanaan partition Redis?
1. Pembahagian sisi klien bermakna pelanggan telah memutuskan nod redis mana data akan disimpan atau dibaca. Kebanyakan pelanggan sudah melaksanakan pembahagian sisi klien.
2. Pembahagian ejen bermaksud pelanggan menghantar permintaan kepada ejen, dan kemudian ejen memutuskan nod yang hendak ditulis atau dibaca data. Ejen memutuskan contoh Redis yang ingin diminta berdasarkan peraturan partition, dan kemudian mengembalikannya kepada klien berdasarkan hasil tindak balas Redis. Pelaksanaan proksi untuk redis dan memcached ialah Twemproxy.
3. Penghalaan pertanyaan (Penghalaan pertanyaan) bermakna pelanggan meminta sebarang contoh redis secara rawak, dan kemudian Redis memajukan permintaan ke nod Redis yang betul. Redis Cluster melaksanakan bentuk hibrid penghalaan pertanyaan, tetapi bukannya memajukan permintaan terus dari satu nod redis ke yang lain, ia mengubah hala terus ke nod redis yang betul dengan bantuan pelanggan.
Apakah keburukan pembahagian Redis?
1. Operasi yang melibatkan berbilang kunci biasanya tidak disokong. Sebagai contoh, anda tidak boleh memotong dua koleksi kerana ia mungkin disimpan dalam keadaan Redis yang berbeza (sebenarnya terdapat cara untuk situasi ini, tetapi arahan persimpangan tidak boleh digunakan secara langsung).
2. Jika berbilang kunci dikendalikan pada masa yang sama, transaksi Redis tidak boleh digunakan.
3. Butiran pembahagian adalah kuncinya, jadi tidak mungkin untuk memecah set data dengan satu kunci besar seperti set diisih yang sangat besar)
4. Apabila menggunakan partition, pemprosesan data akan menjadi sangat rumit. Contohnya, untuk sandaran, anda mesti mengumpul fail RDB/AOF daripada contoh dan hos Redis yang berbeza pada masa yang sama.
5. Pengembangan atau pengecutan dinamik semasa pembahagian mungkin sangat rumit. Kelompok Redis menambah atau memadam nod Redis pada masa jalan, yang boleh mencapai pengimbangan semula data yang telus kepada pengguna pada tahap yang paling besar Walau bagaimanapun, beberapa kaedah pembahagian klien atau pembahagian proksi tidak menyokong ciri ini. Walau bagaimanapun, terdapat teknologi pra-sharding yang juga boleh menyelesaikan masalah ini dengan lebih baik.
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !
Atas ialah kandungan terperinci Mengapa anda memerlukan pembahagian Redis? Apakah pilihan pelaksanaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!