Rumah > Artikel > pangkalan data > Perkongsian soalan temuduga Redis frekuensi tinggi akan membantu anda menguasai mata pengetahuan teras!
Artikel ini menyusun dan berkongsi beberapa soalan wawancara Redis frekuensi tinggi dengan anda, dan membawa anda melalui mata pengetahuan teras Redis, yang melibatkan struktur data, model memori, model IO, RDB berterusan, dll. Saya harap ia akan membantu kepada awak!
Ramai orang hanya tahu bahawa ia adalah pangkalan data dalam memori K/V NoSQl, satu benang... Ini kerana mereka tidak memahami Redis sepenuhnya dan tidak boleh terus bertanya lebih banyak soalan.
Soalan ini adalah pemahaman asas Kami boleh melaksanakannya daripada struktur data asas jenis data yang berbeza dalam Redis, sepenuhnya berdasarkan memori, model rangkaian pemultipleksan IO, model benang, rehash progresif...
Pertama-tama kita boleh bercakap tentang kelajuannya Menurut data rasmi, QPS Redis boleh mencapai kira-kira 100,000 (permintaan sesaat boleh merujuk kepada program penanda aras rasmi "Seberapa pantas Redis? " 》, alamat: redis.io/topics/benc…
Paksi mendatar ialah bilangan sambungan dan paksi menegak ialah QPS.
Gambar ini menggambarkan susunan magnitud, ia membuatkan penemuduga merasakan anda telah membaca dokumen rasmi, yang sangat ketat.
Redis ialah pangkalan data berasaskan memori Berbanding dengan pangkalan data cakera, ia mengalahkan kelajuan cakera sepenuhnya.
Kedua-dua operasi baca dan tulis selesai dalam ingatan Mari kita bandingkan perbezaan antara operasi memori dan operasi cakera masing-masing.
Panggilan cakera
Operasi memori
Memori dikawal secara langsung oleh CPU , juga Ia adalah pengawal memori yang disepadukan di dalam CPU, jadi memori disambungkan terus ke CPU dan menikmati lebar jalur yang optimum untuk komunikasi dengan CPU.
Akhir sekali, gambar digunakan untuk mengukur pelbagai kelewatan sistem (sebahagian daripada data dipetik daripada Brendan Gregg)
Semasa saya belajar MySQL, saya tahu bahawa struktur data B Tree digunakan untuk meningkatkan kelajuan perolehan semula, jadi kelajuan pantas Redis juga harus dikaitkan dengan struktur data.
Redis mempunyai sejumlah 5 jenis data, String、List、Hash、Set、SortedSet
.
Jenis data yang berbeza disokong oleh satu atau lebih struktur data di bahagian bawah, untuk mengejar kelajuan yang lebih pantas.
Mesej daripada Saudara Ma: Kami boleh menerangkan kelebihan struktur data asas bagi setiap jenis data secara berasingan Ramai orang hanya mengetahui jenis data, dan memberitahu struktur data asas boleh membuat mata orang bersinar.
SDS medium len save this The panjang rentetan, kerumitan masa O(1) untuk menanyakan maklumat panjang rentetan.
Pra-peruntukan ruang: Selepas SDS diubah suai, program ini bukan sahaja akan memperuntukkan ruang yang diperlukan untuk SDS, tetapi juga memperuntukkan ruang tambahan yang tidak digunakan.
Pelepasan ruang malas: Apabila memendekkan SDS, program tidak akan menuntut semula ruang memori yang berlebihan, tetapi menggunakan medan bebas untuk merekodkan bilangan bait dan tidak melepaskannya kemudian operasi tambah diperlukan, ruang yang tidak digunakan dalam percuma digunakan secara langsung, mengurangkan peruntukan memori.
Senarai termampat ialah salah satu pelaksanaan asas bagi tiga jenis data Senarai, cincang dan Set yang diisih.
Apabila senarai hanya mempunyai sejumlah kecil data, dan setiap item senarai adalah sama ada nilai integer kecil atau rentetan yang agak pendek, maka Redis akan menggunakan senarai termampat sebagai pelaksanaan asas kekunci senarai.
Dengan cara ini ingatan padat dan menjimatkan memori.
Versi seterusnya telah mengubah struktur data senarai, menggunakan senarai pantas dan bukannya senarai zip dan senarai terpaut.
Senarai Pantas ialah gabungan senarai zip dan senarai terpaut. Ia membahagikan senarai terpaut kepada segmen Setiap segmen menggunakan senarai zip untuk storan padat dan berbilang senarai zip disambungkan bersama menggunakan penunjuk dua arah.
Fungsi pengisihan jenis set diisih dilaksanakan melalui struktur data "senarai langkau".
Senarai langkau ialah struktur data tersusun yang mengekalkan berbilang penunjuk ke nod lain dalam setiap nod untuk mencapai tujuan mengakses nod dengan cepat.
Senarai langkau menambah indeks berbilang peringkat berdasarkan senarai terpaut Melalui beberapa lompatan dalam kedudukan indeks, data boleh diletakkan dengan cepat, seperti yang ditunjukkan dalam rajah di bawah:
Tatasusunan integer (inset)Apabila set hanya mengandungi elemen bernilai integer, dan bilangan elemen dalam set ini tidak besar, Redis akan menggunakan set integer sebagai pelaksanaan asas kunci yang ditetapkan untuk menjimatkan memori. Model benang tunggalMesej daripada Abang Ma: Kita perlu ambil perhatian bahawa utas tunggal Redis merujuk kepada IO rangkaianJangan katakan bahawa Redis hanya mempunyai satu utas.Redis (IO rangkaian selepas versi 6.x Menggunakan multi-threading) dan arahan pasangan nilai kunci membaca dan menulis dilaksanakan oleh satu utas. Kegigihan redis, penyegerakan data kelompok, pemadaman tak segerak, dll. semuanya dilaksanakan oleh urutan lain.
Berbenang tunggal bermaksud pelaksanaan arahan baca dan tulis pasangan nilai kunci Redis adalah berbenang tunggal.
Izinkan saya bercakap tentang jawapan rasmi dahulu, yang membuatkan orang ramai berasa cukup ketat, bukannya hanya membaca beberapa blog berdasarkan apa yang orang lain katakan.Jawapan rasmi: Oleh kerana Redis ialah operasi berasaskan memori, CPU bukanlah kesesakan Redis Kemungkinan besar adalah saiz memori mesin atau saiznya jalur lebar rangkaian. Memandangkan single-threading mudah dilaksanakan dan CPU tidak akan menjadi hambatan, adalah logik untuk menggunakan penyelesaian single-threading. Alamat asal: redis.io/topics/faq.
Mengapa tidak menggunakan pelaksanaan berbilang benang untuk menggunakan CPU sepenuhnya?Sebelum menjalankan setiap tugas, CPU perlu mengetahui di mana tugas itu dimuatkan dan mula dijalankan. Iaitu, sistem memerlukan bantuan untuk menyediakan daftar CPU dan kaunter program terlebih dahulu, yang dipanggil konteks CPU.Apabila menukar konteks, kita perlu menyelesaikan satu siri kerja, yang merupakan operasi yang sangat memakan sumber.
Memperkenalkan pembangunan berbilang benang memerlukan penggunaan primitif penyegerakan untuk melindungi pembacaan dan penulisan serentak sumber yang dikongsi, meningkatkan kerumitan kod dan kesukaran penyahpepijatan.
Apakah faedah benang tunggal?Tiada penggunaan prestasi yang disebabkan oleh penciptaan benang; >
Benang Redis tidak akan menyekat pada pendengaran tertentu atau soket yang disambungkan, iaitu, ia tidak akan menyekat pada atasan pemprosesan permintaan pelanggan tertentu. Disebabkan ini, Redis boleh menyambung kepada berbilang pelanggan pada masa yang sama dan memproses permintaan, sekali gus meningkatkan keselarasan.
Kamus cincang global Redis
Redis secara keseluruhan ialah jadual cincang untuk menyimpan semua pasangan nilai kunci, tanpa mengira jenis data. Jadual cincang pada asasnya ialah tatasusunan, dan setiap elemen dipanggil baldi cincang Tanpa mengira jenis data, entri dalam setiap baldi memegang penunjuk kepada nilai khusus sebenar.Kerumitan masa jadual cincang ialah O(1). Anda hanya perlu mengira nilai cincang setiap kunci untuk mengetahui kedudukan dan kedudukan baldi cincang yang sepadan . Entri dalam baldi mencari data yang sepadan, yang juga merupakan salah satu sebab mengapa Redis pantas.
Redis menggunakan objek (redisObject) untuk mewakili nilai utama dalam pangkalan data Apabila kami mencipta pasangan nilai kunci dalam Redis, sekurang-kurangnya dua objek dibuat sebagai objek utama pasangan kunci-nilai.
Iaitu, setiap entri menyimpan objek redisObject "pasangan nilai kunci", dan data yang sepadan ditemui melalui penunjuk redisObject.Apa yang perlu dilakukan jika terdapat konflik Hash?
Redis menyelesaikan konflik melalui
pencincangan rantaitypedef struct redisObject{ //类型 unsigned type:4; //编码 unsigned encoding:4; //指向底层数据结构的指针 void *ptr; //... }robj;:
Mulakan secara lalai menggunakan "jadual cincang 1" untuk menyimpan data pasangan nilai kunci dan "jadual cincang 2" tidak mempunyai ruang yang diperuntukkan pada masa ini. Apabila semakin banyak data mencetuskan operasi rehash, lakukan operasi berikut:
Sebaliknya,
semula progresifdigunakan Setiap kali permintaan pelanggan diproses, ia bermula dari indeks pertama dalam "jadual cincang 1" dan menukar Semua data disalin ke. "jadual cincang 2", dan cincang semula disebarkan kepada berbilang permintaan untuk mengelakkan sekatan yang memakan masa. Bagaimana Redis mencapai kegigihan? Bagaimana untuk memulihkan data selepas kemalangan?
Semasa Redis melaksanakan arahan "tulis", data memori akan terus berubah. Petikan memori yang dipanggil merujuk kepada data status data dalam memori Redis pada masa tertentu.
Masa seperti membeku pada saat tertentu Apabila kita mengambil gambar, kita boleh merakam detik itu sepenuhnya melalui foto itu.
Redis adalah serupa dengan ini, ia menangkap data pada masa tertentu dalam bentuk fail dan menulisnya ke cakera. Fail syot kilat ini dipanggil
Fail RDB ialah singkatan daripada Redis DataBase.
Apabila melakukan pemulihan data, baca fail RDB terus ke dalam memori untuk melengkapkan pemulihan.
Penemuduga: Semasa penjanaan RDB, bolehkah Redis mengendalikan permintaan tulis pada masa yang sama?Ya, Redis menggunakan pelbagai proses sistem pengendalianteknologi salin atas tulis COW (Copy On Write)
untuk mencapai ketekalan syot kilat dan memastikan ketekalan data. Redis akan memanggil fungsi glibc
untuk menjana proses anak semasa kegigihan Gambaran kegigihan dikendalikan sepenuhnya oleh proses anak dan proses induk terus memproses permintaan pelanggan.fork
Apabila utas utama melaksanakan perintah tulis untuk mengubah suai data, salinan data akan dibuat
bgsave
Ini bukan sahaja memastikan integriti syot kilat, tetapi juga membenarkan urutan utama mengubah suai data pada masa yang sama, mengelakkan sebarang kesan terhadap perniagaan biasa.
Log AOF merekodkan semua urutan arahan yang diubah suai sejak penciptaan tika Redis Kemudian ia boleh dipulihkan dengan melaksanakan semua arahan secara berurutan pada contoh Redis kosong, iaitu, "memainkan semula". keadaan struktur data memori bagi contoh semasa Redis.
Item konfigurasi AOF yang disediakan oleh Redis
Strategi tulis balik secara langsung menentukan kecekapan dan keselamatan fungsi kegigihan AOF.appendfsync
aof_buf
Log pratulis AOF merekodkan setiap operasi arahan "tulis". Ia tidak akan menyebabkan kehilangan prestasi seperti petikan penuh RDB, tetapi kelajuan pelaksanaan tidak sepantas RDB Pada masa yang sama, fail log yang terlalu besar juga akan menyebabkan masalah prestasi.
Oleh itu, Redis telah mereka bentuk "mekanisme penulisan semula AOF" yang mematikan Redis menyediakan perintah
untuk mengurangkan log AOF.bgrewriteaof
Prinsipnya adalah untuk membuka sub-proses untuk melintasi memori dan menukarnya kepada satu siri arahan operasi Redis, yang disiri menjadi fail log AOF baharu. Selepas bersiri selesai, log AOF tambahan yang berlaku semasa operasi dilampirkan pada fail log AOF baharu Selepas penambahan selesai, fail log AOF lama digantikan dengan serta-merta, dan kerja pelangsingan selesai.
Apabila memulakan semula Redis, kami jarang menggunakan rdb untuk memulihkan keadaan memori kerana sejumlah besar data akan hilang. Kami biasanya menggunakan main semula log AOF, tetapi prestasi main semula log AOF jauh lebih perlahan daripada RDB, jadi apabila kejadian Redis besar, ia mengambil masa yang lama untuk dimulakan.
Untuk menyelesaikan masalah ini, Redis 4.0 membawa pilihan kegigihan baharu - Kegigihan hibrid. Simpan kandungan fail rdb bersama-sama dengan fail log AOF tambahan. Log AOF di sini bukan lagi log penuh, tetapi log AOF tambahan yang berlaku dalam tempoh dari awal kegigihan hingga akhir kegigihan Biasanya bahagian log AOF ini sangat kecil.
JadiApabila Redis dimulakan semula, anda boleh memuatkan kandungan rdb dahulu, dan kemudian memainkan semula log AOF tambahan, yang boleh menggantikan main semula fail penuh AOF sebelumnya sepenuhnya, dan kecekapan mulakan semula sangat dipertingkatkan.
Penyegerakan data seni bina tuan-hamba RedisRedis menyediakan mod tuan-hamba, yang menyalin salinan data yang berlebihan ke pelayan Redis lain melalui replikasi tuan-hamba.Penemuduga: Bagaimana untuk memastikan konsistensi data antara tuan dan hamba?Untuk memastikan ketekalan data replika, seni bina tuan-hamba menggunakan kaedah pemisahan baca-tulis.
Penemuduga: Adakah replikasi tuan-hamba mempunyai fungsi lain?
Pemulihan kegagalan: apabila nod induk turun, nod lain masih boleh menyediakan perkhidmatan
Penyegerakan terbahagi kepada tiga situasi:
Salinan penuh pertama perpustakaan tuan-hamba; -slave;
Proses salinan pertama perpustakaan tuan-hamba boleh dibahagikan secara kasar kepada tiga peringkat: peringkat penubuhan sambungan (iaitu peringkat penyediaan), peringkat penyegerakan data daripada perpustakaan induk ke pustaka hamba, dan menghantar data baharu semasa penyegerakan Tulis arahan ke peringkat perpustakaan hamba
Tetapkan sambungan:
Hamba. perpustakaan akan mewujudkan sambungan dengan perpustakaan utama, melaksanakan replika daripada perpustakaan hamba dan menghantar Perintah psync dan memberitahu perpustakaan utama bahawa penyegerakan akan berlaku Selepas perpustakaan utama mengesahkan balasan, penyegerakan antara perpustakaan induk dan hamba akan bermula.
Pustaka induk menyegerakkan data ke pustaka hamba: induk melaksanakan perintahbgsave
Penemuduga: Apakah yang perlu saya lakukan jika rangkaian antara pangkalan data tuan dan hamba terputus? Adakah saya perlu menyalin kelantangan penuh sekali lagi selepas memutuskan sambungan? Bermula dari Redis 2.8, selepas rangkaian diputuskan sambungan, pustaka induk-hamba akan menggunakan replikasi tambahan untuk meneruskan penyegerakan. Replikasi tambahan:Digunakan untuk replikasi selepas gangguan rangkaian dan situasi lain Hanya arahan tulis yang dilaksanakan oleh nod induk semasa gangguan dihantar ke nod hamba, yang lebih cekap daripada replikasi penuh. Rahsia memutuskan sambungan dan menyambung semula replikasi tambahan ialah penimbal
Tidak kira bila, induk akan merekodkan operasi arahan tulis dalam
Kerana memori terhad,adalah tetap Tatasusunan bulat panjang, jika kandungan tatasusunan penuh, kandungan sebelumnya akan ditimpa dari awal .
Tuan menggunakan repl_backlog_buffer
untuk merekodkan kedudukan mengimbangi yang telah ditulisnya, dan hamba menggunakan repl_backlog_buffer
untuk merekodkan mengimbangi yang telah dibacanya. repl_backlog_buffer
Apabila tuan-hamba memutuskan sambungan dan menyambung semula, hamba akan mula-mula menghantar perintah pync kepada tuan, dan pada masa yang sama menghantar sendiri master_repl_offset
, slave_repl_offset
kepada tuan.
master hanya perlu menyegerakkan arahan antara dan
ke pustaka hamba.Proses pelaksanaan salinan tambahan adalah seperti berikut:
Penemuduga: Selepas penyegerakan penuh selesai, bagaimana hendak menyegerakkan data semasa operasi biasa?
Apabila pustaka induk-hamba melengkapkan replikasi penuh, sambungan rangkaian akan dikekalkan di antara mereka Pustaka induk akan menyegerakkan operasi arahan berikutnya yang diterima satu demi satu ke pustaka hamba melalui sambungan ini proses Juga dikenali sebagai penyebaran arahan berdasarkan sambungan panjang, tujuan menggunakan sambungan panjang adalah untuk mengelakkan overhed yang disebabkan oleh penubuhan sambungan yang kerap.
Penemuduga: Pasti, saya tahu banyak, adakah anda tahu Prinsip Kelompok Sentinel?
Sentinel ialah mod pengendalian Redis Ia memfokuskan pada memantau status jalan kejadian Redis (nod induk, nod hamba), dan boleh melepasi satu siri operasi apabila nod induk gagal. . Mekanisme merealisasikan pemilihan induk dan penukaran induk-hamba, merealisasikan failover, dan memastikan ketersediaan keseluruhan sistem Redis .
Rajah seni binanya adalah seperti berikut:
Redis Sentinel mempunyai keupayaan berikut:
Penemu bual: Bagaimanakah pengawal mengenali antara satu sama lain?
Sentinel menjalin komunikasi dengan tuan dan menggunakan mekanisme penerbitan/langganan yang disediakan oleh tuan untuk menerbitkan maklumatnya sendiri, seperti ketinggian dan berat, sama ada anda bujang, IP, port...
Tuan mempunyai __sentinel__:hello
Saluran khusus untuk menerbitkan dan melanggan mesej antara pengawal. Ini seperti __sentinel__:hello
kumpulan WeChat Sentinels menggunakan kumpulan WeChat yang ditubuhkan oleh tuan untuk menyiarkan berita mereka sendiri, dan pada masa yang sama mengikuti berita yang disiarkan oleh pengawal lain .
Penemuduga: Walaupun pengawal telah menjalinkan hubungan antara satu sama lain, mereka masih perlu menjalinkan hubungan dengan hamba jika tidak, mereka tidak boleh dipantau.
Kuncinya ialah menggunakan tuan untuk mencapainya. Pengawal menghantar perintah INFO
kepada tuannya secara semula jadi mengenali semua saudara salve di bawah mazhabnya. Jadi selepas tuan menerima arahan, ia memberitahu penjaga senarai hamba.
Sentinel mewujudkan sambungan dengan setiap hamba berdasarkan maklumat senarai hamba yang dijawab oleh tuan dan terus memantau sentinel berdasarkan sambungan ini.
Penemuduga: Selain sentri, adakah terdapat kaedah ketersediaan tinggi yang lain?
Terdapat gugusan Kluster untuk mencapai ketersediaan tinggi Kluster Redis yang dipantau oleh gugusan Sentinel mempunyai seni bina tuan-hamba dan tidak boleh dikembangkan dengan mudah. Menggunakan kluster Redis Cluster terutamanya menyelesaikan pelbagai masalah kelambatan yang disebabkan oleh penyimpanan data yang besar, dan juga memudahkan pengembangan mendatar.
Apabila berhadapan dengan berjuta-juta atau berpuluh-puluh juta pengguna, gugusan penghirisan Redis yang boleh berskala secara mendatar akan menjadi pilihan yang sangat baik.
Penemuduga: Apakah Kluster?
Kluster Redis ialah penyelesaian pangkalan data teragih Kluster mengurus data melalui sharding (amalan "bahagi dan takluk") dan menyediakan fungsi replikasi dan failover.
Bahagikan data kepada 16384 slot, dan setiap nod bertanggungjawab untuk sebahagian daripada slot. Maklumat slot disimpan dalam setiap nod.
Ia terpencar Seperti yang ditunjukkan dalam rajah, kluster terdiri daripada tiga nod Redis Setiap nod bertanggungjawab untuk sebahagian daripada data keseluruhan kluster menjadi berbeza.
Tiga nod disambungkan antara satu sama lain untuk membentuk kluster peer-to-peer Mereka bertukar maklumat kluster antara satu sama lain melalui protokol Gossip
Akhirnya, setiap nod menyimpan maklumat peruntukan slot lain.
Penemuduga: Bagaimanakah slot cincang dipetakan kepada kejadian Redis?
Hubungan pemetaan antara data pasangan nilai kunci, slot cincang dan kejadian Redis adalah seperti berikut:
Penemuduga: Bagaimana tentang failover Kluster Implement?
Nod kluster Redis menggunakan protokol Gossip
untuk menyiarkan status dan perubahan dalam pengetahuan mereka tentang keseluruhan kluster. Contohnya, jika nod mendapati bahawa nod tertentu hilang (PFail), ia akan menyiarkan maklumat ini ke seluruh kluster dan nod lain juga boleh menerima maklumat sambungan yang hilang ini.
Jika nod menerima bahawa bilangan pemotongan daripada nod (PFail Count) telah mencapai majoriti kluster, ia boleh menandakan nod sebagai pasti luar talian (Gagal) dan kemudian menyiarkannya ke seluruh kluster. Paksa nod lain untuk turut menerima hakikat bahawa nod telah di luar talian, dan segera lakukan suis induk-hamba pada nod yang hilang.
Penemuduga: Bagaimanakah klien menentukan contoh data yang diakses diedarkan?
Tokok Redis akan menghantar maklumat slot cincangnya kepada kejadian lain dalam kelompok melalui protokol Gossip, merealisasikan penyebaran maklumat peruntukan slot cincang.
Dengan cara ini, setiap tika dalam kelompok mempunyai maklumat perhubungan pemetaan antara semua slot cincang dan tika.
Apabila pelanggan menyambung ke mana-mana kejadian, tika itu bertindak balas kepada pelanggan dengan hubungan pemetaan antara slot cincang dan tika itu, dan pelanggan menyimpan cache slot cincang dan maklumat pemetaan tika secara setempat.
Apabila pelanggan membuat permintaan, slot cincang yang sepadan dengan kunci akan dikira, dan kemudian contoh di mana data terletak akan ditempatkan melalui maklumat pemetaan contoh slot cincang setempat, dan permintaan itu akan dihantar ke contoh yang sepadan.
Penemuduga: Apakah mekanisme pengalihan semula Redis?
Hubungan pemetaan antara slot cincang dan kejadian telah berubah disebabkan oleh kejadian baharu atau pengagihan semula pengimbangan beban Pelanggan menghantar permintaan kepada tika, yang tidak mempunyai data yang sepadan, Redis instance akan memberitahu klien untuk menghantar permintaan ke instance lain .
Redis memberitahu pelanggan melalui ralat MOVED dan ralat ASK.
MOVED Ralat (pengimbangan beban, data telah dipindahkan ke kejadian lain): Apabila pelanggan menghantar permintaan operasi pasangan nilai kunci kepada tika, Apabila slot di mana kunci terletak tidak dimiliki dengan sendirinya, instance akan mengembalikan ralat MOVED dan ubah hala ke nod yang bertanggungjawab untuk slot.
Pada masa yang sama, klien juga akan mengemas kini cache setempat untuk mengemas kini perhubungan yang sepadan antara slot dan tika Redis dengan betul .
Jika terdapat banyak data dalam slot, sebahagian daripadanya akan dipindahkan ke tika baharu dan sebahagian daripadanya tidak akan berhijrah.
Jika kunci yang diminta ditemui pada nod semasa, laksanakan arahan terus, jika tidak, respons ralat ASK akan diperlukan.
Apabila pemindahan slot tidak selesai, jika Slot di mana kunci yang perlu diakses sedang dipindahkan dari contoh 1 ke contoh 2 (jika kunci tidak lagi dalam contoh 1), contoh 1 akan kembali mesej ralat ASK kepada klien: Slot cincang di mana kunci yang diminta oleh klien terletak sedang dipindahkan ke contoh 2. Anda mula-mula menghantar arahan ASKING ke contoh 2, dan kemudian menghantar arahan operasi .
Contohnya, pelanggan meminta untuk mencari slot 16330 dengan kunci = "Akaun Rasmi: Code Byte" pada contoh 172.17.18.1 Jika nod 1 boleh menemuinya, ia akan melaksanakan arahan secara langsung, jika tidak, ia akan bertindak balas dengan mesej ralat ASK dan Arahkan klien ke nod sasaran yang sedang dipindahkan, 172.17.18.2.
Nota: Arahan ralat ASK tidak mengemas kini maklumat peruntukan slot cincang cache klien.
Artikel ini terutamanya membincangkan kandungan teras Redis, yang melibatkan struktur data, model memori, model IO, RDB dan AOF yang berterusan, prinsip replikasi tuan-hamba, prinsip sentri, prinsip kelompok .
Alamat asal: https://juejin.cn/post/6976257378094481444
Pengarang: Code Brother Byte
Lebih banyak pengetahuan berkaitan pengaturcaraan, Sila layari : Video Pengaturcaraan! !
Atas ialah kandungan terperinci Perkongsian soalan temuduga Redis frekuensi tinggi akan membantu anda menguasai mata pengetahuan teras!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!