Rumah > pangkalan data > Redis > teks badan

Adakah Redis Cluster akan kehilangan data?

藏色散人
Lepaskan: 2021-09-21 17:09:33
ke hadapan
2121 orang telah melayarinya

Redis Cluster tidak menjamin konsistensi yang kukuh Dalam sesetengah senario khas, pelanggan mungkin masih kehilangan data walaupun ia menerima pengesahan tulis.

Senario 1: Replikasi tak segerak

Adakah Redis Cluster akan kehilangan data?

  • klien menulis kepada master B
  • balasan master B OK
  • Master B menyegerakkan kepada hamba B1 B2 B3

B membalas kepada klien tanpa menunggu pengesahan daripada B1 B2 B3 Jika tuan turun sebelum penyegerakan hamba selesai, salah satu hamba akan dipilih sebagai master , maka data yang ditulis oleh klien hilang. Perintah

wait boleh meningkatkan keselamatan data dalam senario ini.

wait akan menyekat klien semasa sehingga operasi tulis sebelumnya berjaya disegerakkan dengan bilangan hamba yang ditentukan.

wait boleh meningkatkan keselamatan data, tetapi tidak menjamin konsistensi yang kukuh.

Oleh kerana walaupun kaedah replikasi segerak ini digunakan, terdapat situasi istimewa: hamba yang belum menyelesaikan penyegerakan dipilih sebagai tuan.

Senario 2: Pembahagian rangkaian

6 nod A, B, C, A1, B1, C1, 3 induk, 3 hamba dan satu pelanggan, Z1.

Adakah Redis Cluster akan kehilangan data?

Selepas partition rangkaian berlaku, 2 zon terbentuk, A, C, A1, B1, C1 dan B Z1.

Adakah Redis Cluster akan kehilangan data?

Pada masa ini Z1 masih boleh menulis kepada B. Jika partition dipulihkan dalam masa yang singkat, maka tiada masalah. Kelompok terus berfungsi seperti biasa, tetapi jika masa berlalu, B1 akan menjadi tuan partition di mana ia berada, dan data yang ditulis oleh Z1 hingga B akan hilang.

maximum window(最大时间窗口) Ia boleh mengurangkan kehilangan data dan mengawal jumlah penulisan dari Z1 hingga B:

Selepas tempoh masa tertentu, majoriti partition akan dipilih, dan hamba akan menjadi tuan. Tuan di bahagian minoriti partition akan menolak untuk menerima permintaan tulis.

Jumlah masa ini sangat penting dan dipanggil Masa Tamat Nod.

Selepas tuan mencapai masa tamat tempoh, ia dianggap rosak, memasuki keadaan ralat, berhenti menerima permintaan tulis dan boleh digantikan oleh hamba.

Ringkasan

Redis Cluster tidak menjamin konsistensi yang kukuh, dan terdapat senario kehilangan data:

  • Replikasi tak segerak

Tulis dalam master Berjaya, tetapi sebelum penyegerakan hamba selesai, tuan ranap, hamba menjadi tuan, dan data hilang. Perintah

wait boleh digunakan untuk replikasi segerak, tetapi ia tidak dapat menjamin sepenuhnya bahawa data tidak akan hilang dan akan menjejaskan prestasi.

  • Pembahagian rangkaian

Selepas pembahagian, induk terus menerima permintaan tulis Selepas pemulihan partition, induk mungkin menjadi hamba, dan data yang ditulis sebelum ini akan hilang .

Anda boleh menetapkan masa tamat nod untuk mengurangkan bilangan penulisan yang diterima oleh induk semasa pembahagian dan mengurangkan kos kehilangan data.

Pembelajaran yang disyorkan: "tutorial redis"

Atas ialah kandungan terperinci Adakah Redis Cluster akan kehilangan data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan