Artikel ini akan bercakap tentang model reaktor satu benang, model I/O dan model I/O berbilang benang dalam Redis. Saya harap ia akan membantu anda!
Prestasi tinggi redis
- Akses memori tulen, semua data berada dalam ingatan, dan semua operasi adalah Untuk ingatan operasi peringkat, masa tindak balas memori berada pada tahap nanosaat. Oleh itu, CPU proses redis pada asasnya tidak mempunyai masa menunggu I/O cakera dan masalah prestasi membaca dan menulis CPU bukanlah kesesakan redis (saiz memori dan rangkaian I/O adalah kesesakan redis, itu. ialah, jurang antara pelanggan dan kelewatan penghantaran rangkaian). [Pengesyoran berkaitan: Tutorial video Redis]
- menggunakan model satu utas dan pelaksanaan satu utas adalah mudah. Mengelakkan overhed yang disebabkan oleh penukaran konteks yang kerap berbilang rangkaian dan mekanisme penyegerakan seperti kunci
- Struktur data asas yang mudah dan cekap: rentetan dinamik (SDS), senarai terpaut, kamus, senarai terpaut lompat, set integer dan senarai termampat . Kemudian redis menggunakan asas ini untuk melaksanakan objek yang pengguna boleh kendalikan: rentetan, senarai, cincang, set, set tersusun dan objek lain
- pemproses acara rangkaian mod reaktor. Ia menggunakan pemultipleksan I/O untuk memantau berbilang soket pada masa yang sama, yang merupakan model I/O yang cekap. Untuk pengetahuan berkaitan reaktor, anda boleh membaca artikel iniArtikel rangka kerja: Lihat model Reaktor IO rangkaian berprestasi tinggi Linux
Mengapa menggunakan utas tunggal
- Benang tunggal digunakan untuk mengelakkan penukaran konteks dan keadaan persaingan yang tidak perlu; tiada penguncian dan pelepasan Tiada penggunaan prestasi kerana kemungkinan jalan buntu dalam operasi kunci
- Mudah dan boleh diselenggarakan akan menjadikan penulisan program lebih rumit dan menyusahkan untuk dilaksanakan
-
Redis ialah sistem satu benang?
Kami sering mengatakan bahawa redis adalah satu-benang kerana reaktor model pemprosesan acara rangkaiannya adalah satu-benang
- Jika permintaan pelanggan memadamkan berjuta-juta nilai utama, maka ini Perintah itu boleh menyebabkan penyekatan. Dalam redis 4.0, multi-threading telah dipilih untuk melaksanakan jenis arahan tidak menyekat ini
- Dalam versi redis 6.0, multi-threading telah diperkenalkan secara rasmi untuk mengendalikan I/O klien jawapan baca dan tulis, manakala pemprosesan daripada peristiwa arahan redis masih dalam pemprosesan baris tunggal utas utama
- Jika ia untuk keseluruhan sistem redis, sentiasa ada urutan lain untuk mengendalikan tugas tak segerak, seperti penyegerakan AOF dan RDB
-
model I/O redis
Redis memproses dengan cepat, bukan sahaja kerana ia adalah sistem ingatan tulen satu benang, tetapi juga kerana ia menggunakan model Reaktor dan menggunakan Pemultipleksan I/O untuk memproses permintaan luaran , Kurangkan sambungan rangkaian, baca dan tulis masa menunggu. Ia boleh mengendalikan sebilangan besar permintaan pelanggan secara serentak dalam operasi I/O rangkaian, mencapai daya pemprosesan tinggi dan keselarasan tinggi
berbilang benang Versi redis Model I/O 6.0
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:
Pengenalan kepada Pengaturcaraan
! !
Atas ialah kandungan terperinci Pembelajaran Redis bercakap tentang model reaktor berulir tunggal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!