Rumah  >  Artikel  >  pangkalan data  >  Apakah cara biasa untuk menggunakan Redis?

Apakah cara biasa untuk menggunakan Redis?

王林
王林ke hadapan
2023-05-30 11:53:082416semak imbas

1. Kaedah penggunaan biasa

Beberapa kaedah penggunaan Redis yang biasa termasuk:

1. ;

3.Redis Sentinel;

4.Redis Kluster;

2. Kelebihan dan keburukan pelbagai kaedah penggunaan

1 salinan tunggal Redis

Salinan tunggal Redis menggunakan seni bina penggunaan nod Redis tunggal, dan tiada nod sandaran untuk menyegerakkan data dalam masa nyata Ia tidak memberikan kegigihan data dan strategi sandaran, dan sesuai untuk senario perniagaan caching tulen dengan keperluan kebolehpercayaan data yang rendah.

Kelebihan: Apakah cara biasa untuk menggunakan Redis?
Seni bina yang ringkas dan penggunaan mudah;

Prestasi kos tinggi: tiada nod sandaran diperlukan apabila menggunakan cache (Ketersediaan contoh tunggal boleh dijamin menggunakan penyelia atau crontab) Sudah tentu, untuk memenuhi ketersediaan tinggi perniagaan, nod sandaran juga boleh dikorbankan, tetapi hanya satu contoh boleh menyediakan perkhidmatan luaran pada masa yang sama; >

Prestasi tinggi.

Kelemahan:

Tidak menjamin kebolehpercayaan data

Apabila cache digunakan, data hilang selepas proses dimulakan semula menyelesaikan ketersediaan tinggi, ia masih tidak dapat Menyelesaikan masalah pemanasan awal cache, jadi ia tidak sesuai untuk perniagaan yang mempunyai keperluan kebolehpercayaan data yang tinggi

Prestasi tinggi dihadkan oleh kuasa pemprosesan CPU teras tunggal (Redis ialah; mekanisme satu-benang), dan CPU adalah kesesakan utama, jadi ia adalah Senario yang sesuai dengan arahan operasi mudah dan kurang pengisihan dan pengiraan. Anda juga boleh mempertimbangkan untuk menggunakan Memcached.

2. Redis berbilang salinan (master-slave)

Redis multi-copy menggunakan struktur penggunaan master-slave (replikasi) Berbanding dengan salinan tunggal, ciri terbesar ialah data antara master dan contoh hamba. Penyegerakan masa nyata dan kegigihan data dan strategi sandaran disediakan. Konfigurasi persekitaran asas syarikat membolehkan contoh tuan-hamba digunakan pada pelayan fizikal yang berbeza untuk mencapai peruntukan perkhidmatan luaran serentak dan strategi pemisahan baca-tulis.

Kelebihan:

Apakah cara biasa untuk menggunakan Redis?Kebolehpercayaan yang tinggi: Di ​​satu pihak, ia menggunakan seni bina aktif dan siap sedia dwi-mesin, yang secara automatik boleh mengambil alih mod aktif apabila pangkalan data utama gagal beralih, pangkalan data hamba dinaikkan pangkat untuk menyediakan perkhidmatan kepada pangkalan data utama untuk memastikan kelancaran perkhidmatan di sisi lain, menghidupkan fungsi kegigihan data dan mengkonfigurasi strategi sandaran yang munasabah menyelesaikan masalah penyelewengan data dan kehilangan data yang tidak normal dengan berkesan;

Kelemahan:

Pemulihan kegagalan adalah kompleks Jika tiada sistem RedisHA (memerlukan pembangunan), apabila nod pangkalan data utama gagal, nod hamba perlu dinaikkan secara manual ke nod induk, dan pihak perniagaan perlu dimaklumkan untuk mengubah konfigurasi dan perlu membiarkan nod pangkalan data hamba lain menyalin nod pangkalan data induk yang baharu pangkalan data dihadkan oleh satu mesin, jadi sharding boleh dipertimbangkan

Kapasiti storan perpustakaan utama dihadkan oleh satu mesin, jadi Pika boleh dipertimbangkan

Kelemahan asli replikasi juga akan menjadi lebih menonjol dalam versi awal Contohnya: selepas replikasi Redis terganggu, Slave akan memulakan pync This Jika penyegerakan gagal, penyegerakan penuh akan dilakukan Apabila perpustakaan utama melakukan sandaran penuh, ia boleh menyebabkan milisaat atau saat ketinggalan tahap; dan disebabkan oleh mekanisme COW, memori perpustakaan utama melimpah dalam kes yang melampau, dan program keluar secara tidak normal atau mesin ranap; ; menghantar fail sandaran beberapa GB menyebabkan lebar jalur eksport pelayan meningkat secara mendadak dan menyekat permintaan Anda disyorkan untuk menaik taraf kepada versi terkini.

3. Redis Sentinel (Sentinel)

Redis Sentinel ialah penyelesaian ketersediaan tinggi asli yang dilancarkan dalam versi komuniti.

Kluster Redis Sentinel ialah kluster teragih yang terdiri daripada beberapa nod Sentinel, yang boleh merealisasikan penemuan kerosakan, kegagalan automatik, pusat konfigurasi dan pemberitahuan pelanggan. Bilangan nod untuk memenuhi Redis Sentinel mestilah nombor ganjil dan nombornya ialah 2n+1 (n≥1).

Kelebihan:

Apakah cara biasa untuk menggunakan Redis?Penyerahan kelompok Redis Sentinel adalah mudah; > Ia boleh menyelesaikan masalah pensuisan ketersediaan tinggi dalam mod tuan-hamba Redis

Sangat mudah untuk merealisasikan pengembangan linear nod data Redis, dengan mudah menembusi kesesakan benang tunggal Redis itu sendiri, dan boleh memenuhi keperluan perniagaan Redis yang berkapasiti besar atau berprestasi tinggi ;

Apakah cara biasa untuk menggunakan Redis?Satu set Sentinel boleh dilaksanakan untuk memantau sekumpulan nod data Redis atau berbilang kumpulan nod data.

Kelemahan:

Pengerahan lebih rumit daripada mod tuan-hamba Redis, dan pemahaman prinsipnya lebih rumit

Membazir sumber, nod hamba dalam Nod data Redis berfungsi sebagai nod sandaran dan tidak menyediakan perkhidmatan ;

Redis Sentinel adalah terutamanya untuk penukaran ketersediaan tinggi nod induk dalam nod data Redis Penentuan kegagalan nod data Redis dibahagikan kepada luar talian subjektif dan luar talian objektif Untuk nod hamba Redis, terdapat Nod diambil di luar talian secara subjektif dan tiada failover dilakukan.

Ia tidak dapat menyelesaikan masalah pemisahan membaca dan menulis, dan ia agak rumit untuk dilaksanakan.

Cadangan:

Jika anda memantau perniagaan yang sama, anda boleh memilih gugusan Sentinel untuk memantau berbilang kumpulan nod data Redis. Jika tidak, pilih gugusan Sentinel untuk memantau kumpulan nod data Redis .

Tetapan yang disyorkan dalam konfigurasi monitor sentinel ialah separuh daripada nod Sentinel tambah 1. Apabila Sentinel digunakan dalam berbilang IDC, bilangan Sentinel yang digunakan dalam satu IDC tidak disyorkan untuk melebihi (nombor Sentinel – kuorum ).

Tetapkan parameter dengan munasabah untuk mengelakkan pemotongan tidak sengaja dan kawalan kepekaan kawalan:

a kuorum

b ke bawah-selepas-milisaat 30000

c. failover-timeout 180000

d. maxclient

e timeout

Masa pelayan bagi setiap nod yang digunakan mesti disegerakkan sebanyak mungkin, jika tidak, pemasaan log akan. menjadi keliru.

Redis mengesyorkan menggunakan saluran paip dan operasi berbilang kunci untuk mengurangkan bilangan RTT dan meningkatkan kecekapan permintaan.

Konfigurasikan pusat konfigurasi (penjaga zoo) sendiri untuk memudahkan akses pelanggan kepada pautan contoh.

4. Kluster Redis

Kluster Redis ialah penyelesaian kluster yang diedarkan oleh Redis yang dilancarkan oleh versi komuniti Ia terutamanya menyelesaikan keperluan pengedaran Redis, seperti apabila menghadapi memori mesin tunggal, konkurensi dan Apabila terdapat kesesakan, Redis Cluster boleh mencapai tujuan pengimbangan beban yang baik.

Konfigurasi minimum nod kluster Redis adalah lebih daripada 6 nod (3 induk dan 3 hamba Nod induk menyediakan operasi baca dan tulis, dan nod hamba berfungsi sebagai nod sandaran, tidak menyediakan). permintaan, dan hanya digunakan untuk failover.

Kluster Redis menggunakan pembahagian slot maya Semua kekunci dipetakan kepada 0~16383 slot integer mengikut fungsi cincang.

Apakah cara biasa untuk menggunakan Redis?

Kelebihan:

Tiada seni bina pusat

Data disimpan dalam berbilang nod mengikut slot dan data dikongsi; antara nod , boleh melaraskan pengedaran data secara dinamik;

Skalabiliti: boleh dikembangkan secara linear kepada lebih daripada 1,000 nod dan nod boleh ditambah atau dipadamkan secara dinamik; , kluster masih ada . Dengan menambahkan Slave sebagai salinan data siap sedia, maklumat status failover automatik ditukar antara nod melalui protokol gosip, dan mekanisme pengundian digunakan untuk melengkapkan promosi peranan daripada Slave to Master; kos operasi dan penyelenggaraan serta meningkatkan prestasi dan ketersediaan sistem.

Kelemahan:

Pelaksanaan pelanggan adalah rumit, dan pemacu memerlukan pelaksanaan Smart Client, menyimpan maklumat pemetaan slot dan mengemas kininya dalam masa, yang meningkatkan kesukaran pembangunan pelanggan menjejaskan kestabilan perniagaan. Pada masa ini, hanya JedisCluster yang agak matang, dan bahagian pengendalian pengecualian masih belum sempurna, seperti "pengecualian ubah hala maks" biasa.

Nod akan disekat atas sebab tertentu (masa penyekatan lebih besar daripada tamat masa nod-klutser) dan akan dinilai sebagai di luar talian Failover jenis ini tidak diperlukan.

Data disalin secara tak segerak dan ketekalan data yang kukuh tidak dijamin.

Apabila berbilang perniagaan menggunakan kluster yang sama, adalah mustahil untuk membezakan data panas dan sejuk berdasarkan statistik Pengasingan sumber adalah lemah dan pengaruh bersama mudah berlaku.

Hamba bertindak sebagai "siap sedia sejuk" dalam kelompok dan tidak dapat melegakan tekanan bacaan Sudah tentu, penggunaan sumber Hamba boleh dipertingkatkan melalui reka bentuk SDK yang munasabah.

Sekatan operasi kelompok kunci, seperti menggunakan mset dan mget pada masa ini hanya menyokong Kekunci dengan nilai slot yang sama untuk melaksanakan operasi kelompok. Untuk Kekunci dipetakan kepada nilai slot yang berbeza, memandangkan Kekunci tidak menyokong pertanyaan rentas slot, ia tidak mesra pengguna untuk melaksanakan operasi seperti mset, mget dan sunion.

Sokongan operasi transaksi utama adalah terhad. Ia hanya menyokong operasi transaksi berbilang kunci pada nod yang sama Apabila berbilang kunci diedarkan pada nod yang berbeza, fungsi transaksi tidak boleh digunakan.

Data yang mengandungi objek nilai kunci yang besar (seperti cincang, senarai, dll.) tidak boleh dipetakan ke nod yang berbeza, kerana dalam pembahagian data, kuncinya ialah butiran terkecil.

Tidak menyokong berbilang ruang pangkalan data Redis dalam mod bersendirian boleh menyokong sehingga 16 pangkalan data Dalam mod kluster, hanya 1 ruang pangkalan data boleh digunakan, iaitu db 0.

Struktur replikasi hanya menyokong satu tahap Nod hamba hanya boleh mereplikasi nod induk dan struktur replikasi pokok bersarang tidak disokong.

Elakkan menjana hot-key, menyebabkan nod perpustakaan utama menjadi kekurangan sistem.

Elakkan menjana kunci besar, yang boleh menyebabkan beban kad rangkaian, pertanyaan perlahan, dsb.

Masa cuba semula seharusnya lebih besar daripada masa masa nod kelompok.

Redis Cluster tidak mengesyorkan menggunakan saluran paip dan operasi berbilang kunci untuk mengurangkan senario ubah hala maksimum.

Kongsi panduan temu duga "Kompilasi mata pengetahuan teras Java.pdf" "merangkumi JVM, kunci, konkurensi tinggi, pantulan, prinsip Spring, perkhidmatan mikro, Zookeeper, pangkalan data, struktur data, dll.", dan juga Jika anda mempunyai soalan temuduga Java208 (termasuk jawapan), sertai (Java Advanced Architecture) 705127209 untuk mendapatkannya secara percuma!

5. Redis dibangunkan sendiri

Penyelesaian ketersediaan tinggi yang dibangunkan sendiri oleh Redis terutamanya dicerminkan dalam pusat konfigurasi, pengesanan kesalahan dan mekanisme pemprosesan failover, yang biasanya perlu berdasarkan pada perniagaan dalam talian sebenar persekitaran perusahaan untuk menyesuaikan.

Apakah cara biasa untuk menggunakan Redis?

Kelebihan:

Kebolehpercayaan yang tinggi dan ketersediaan yang tinggi

Autonomi dan kawalan yang tinggi; , kebolehskalaan yang baik dan keserasian yang baik.

Kelemahan:

Pelaksanaan yang rumit dan kos pembangunan yang tinggi;

Perlu mewujudkan kemudahan persisian sokongan, seperti pemantauan, perkhidmatan nama domain, pangkalan data untuk menyimpan maklumat metadata, dsb. ;

Kos penyelenggaraan yang tinggi.

Atas ialah kandungan terperinci Apakah cara biasa untuk menggunakan Redis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam