Heim  >  Artikel  >  Datenbank  >  Redis Master-Slave-Replikationsprinzip und häufige Probleme

Redis Master-Slave-Replikationsprinzip und häufige Probleme

咔咔
咔咔Original
2020-08-28 17:20:511853Durchsuche

Ich glaube, dass viele Freunde die Master-Slave-Replikation bereits konfiguriert haben, aber sie haben kein tiefes Verständnis für den Workflow und die häufigen Probleme der Redis-Master-Slave-Replikation. Kaka hat dieses Mal zwei Tage mit dem Kompilieren verbracht Eine Kopie für Sie. Alle Wissenspunkte zur Redis-Master-Slave-Replikation. Ich werde später einige Wissenspunkte hinzufügen, die nicht im Artikel enthalten sind. Ich freue mich auch darauf, Sie im Kommentarbereich zu sehen. 1. Was ist Redis Master-Slave-Replikation?

Master-Slave-Replikation bedeutet, dass es jetzt zwei Redis-Server gibt und die Daten eines Redis mit der anderen Redis-Datenbank synchronisiert werden. Ersterer wird als Master-Knoten bezeichnet, letzterer als Slave-Knoten. Daten können nur in einer Richtung vom Master zum Slave synchronisiert werden.

  • Receive-Daten aus dem Sklavenknoten und führen Sie Bgrewriteaof aus, um die Daten wiederherzustellen. Dieser Prozess ist die umfassendste Master-Slave-Replikation. Vollständige Prozesserklärung. Lassen Sie uns jeden Schritt des Prozesses kurz vorstellen

    1. Befehle von Knoten senden Finden Sie den entsprechenden <code style="overflow-wrap: break-word; margin: 0px 2px; font-family: " operator mono consolas monaco menlo monospace word-break: break farbe: rgba randradius:> runidFrägt Daten an. Hier können Sie jedoch berücksichtigen, dass der Slave-Knoten beim ersten Verbinden den runid und offset. Der erste gesendete Befehl ist also psync? 1 bedeutet, dass ich alle Daten des Masterknotens haben möchte. psync ? 1 psync runid offset   找对应的runid索取数据。但是这里可以考虑一下,当从节点第一次连接的时候根本就不知道主节点的runid 和 offset  。所以第一次发送的指令是psync ? 1意思就是主节点的数据我全要。
    2. 主节点开始执行bgsave生成RDB文件,记录当前的复制偏移量offset
    3. 主节点这个时候会把自己的runid  和  offset  通过 +FULLRESYNC  runid  offset   指令  通过socket发送RDB文件给从节点。
    4. 从节点接收到+FULLRESYNC  保存主节点的runid和offset    然后清空当前所有数据,通过socket接收RDB文件,开始恢复RDB数据。
    5. 在全量复制后,从节点已经获取到了主节点的runid和offset,开始发送指令 psync runid offset
    6. 主节点接收指令,判断runid是否匹配,判断offset是否在复制缓冲区中。
    7. 主节点判断runid和offset有一个不满足,就会在返回到步骤2
    8. Der Masterknoten beginnt mit der Ausführung von bgsave, um die RDB-Datei zu generieren und den aktuellen Replikationsoffset-Offset aufzuzeichnen.
    Der Masterknoten sendet seine eigene Runid und seinen eigenen Offset über den Runid-Offset-Befehl +FULLRESYNC, an den die RDB-Datei gesendet werden soll den Slave-Knoten über den Socket.

    Empfangen Sie +FULLRESYNC vom Slave-Knoten, speichern Sie die Runid und den Offset des Master-Knotens, löschen Sie dann alle aktuellen Daten, empfangen Sie die RDB-Datei über den Socket und beginnen Sie mit der Wiederherstellung der RDB-Daten. 🎜🎜🎜🎜Nach dem vollständigen Kopieren hat der Slave-Knoten die Runid und den Offset des Master-Knotens erhalten und mit dem Senden von Anweisungen begonnenpsync runid offset🎜🎜🎜🎜Der Masterknoten empfängt die Anweisung, bestimmt, ob die Runid übereinstimmt und ob sich der Offset im Kopierpuffer befindet. 🎜🎜🎜🎜Wenn der Masterknoten feststellt, dass eine der Runids und Offsets nicht erfüllt ist, kehrt er zum Schritt zurück2 Führen Sie den vollständigen Kopiervorgang fort. Die Nichtübereinstimmung der Runids ist möglicherweise nur auf den Neustart des Slave-Knotens zurückzuführen. Die Nichtübereinstimmung des Offsets (Offset) ist der Überlauf des Replikationsrückstands. Wenn die Runid- oder Offset-Prüfung erfolgreich ist und der Offset des Slave-Knotens mit dem Offset des Master-Knotens übereinstimmt, wird er ignoriert. Wenn die Runid- oder Offset-Prüfung erfolgreich ist und sich der Offset des Slave-Knotens vom Offset unterscheidet, wird der +CONTINUE-Offset (dieser Offset gehört zum Master-Knoten) gesendet und die Daten vom Slave-Knoten-Offset zum Master-Knoten-Offset gesendet Der Replikationspuffer wird über den Socket gesendet. 🎜🎜🎜🎜Empfangen Sie +CONTINUE vom Knoten und speichern Sie den Offset des Masters. Führen Sie nach dem Empfang der Informationen über den Socket bgrewriteaof aus, um die Daten wiederherzustellen. 🎜🎜🎜🎜🎜 „1-4 sind vollständige Kopien, 5-8 sind Teilkopien“🎜🎜

    In Schritt 3 des Masterknotens hat der Masterknoten während des Master-Slave-Replikationszeitraums Clientdaten empfangen und der Offset des Masterknotens hat sich geändert. An jeden Slave werden nur Änderungen gesendet. Dieser Sendevorgang wird als Heartbeat-Mechanismus bezeichnet Es ist notwendig, Informationen auszutauschen und den Heartbeat-Mechanismus zur Wartung zu verwenden, um die Verbindung zwischen dem Master-Knoten und dem Slave-Knoten online zu halten.

    Master Heartbeat

    Befehl: Ping

    • Der Standardwert ist einmal alle 10 Sekunden, was durch den Parameter repl-ping-slave-period bestimmt wird

        Die Hauptsache ist, festzustellen, ob Der Slave-Knoten ist online
      • Sie können die Informationsreplikation verwenden, um das Intervall der Verbindungszeit nach dem Mieten vom Slave-Knoten zu überprüfen. Wenn die Verzögerung 0 oder 1 beträgt, ist dies normal.
      • Slave-Heartbeat-Task
      • Befehl: replconf ack {offset}
    • Einmal pro Sekunde ausgeführt

        Die Hauptsache ist, seinen eigenen Replikationsoffset an den Masterknoten zu senden , Nachher Nachdem Sie den neuesten Datenänderungsbefehl vom Masterknoten erhalten haben, müssen Sie außerdem feststellen, ob der Masterknoten online ist.
      • „Vorsichtsmaßnahmen während der Heartbeat-Phase“
      • Um die Datenstabilität zu gewährleisten, schützt der Master-Knoten die Daten, wenn die Anzahl der Slave-Knoten hängt oder die Verzögerung zu hoch ist. Jegliche Informationssynchronisierung wird abgelehnt.
        Es gibt zwei Parameter zur Konfigurationsanpassung:
      min-slaves-to-write 2
    • min-slaves-max-lag 8

    Diese beiden Parameter geben an, dass nur noch 2 Slave-Knoten übrig sind, oder ab dem Knoten Wenn die Verzögerung länger als 8 Sekunden ist, schaltet der Masterknoten die Masterfunktion zwangsweise ab und stoppt die Datensynchronisierung.

    Woher kennt der Master-Knoten die Anzahl und Verzögerungszeit der ausgefallenen Slave-Knoten? Im Heartbeat-Mechanismus sendet der Slave jede Sekunde den Befehl perlconf ack. Dieser Befehl kann den Offset, die Verzögerungszeit des Slave-Knotens und die Anzahl der Slave-Knoten übertragen. 8. Drei Kernelemente der teilweisen Replikation Befehl ist zu sehen. Wir können dies auch sehen, wenn wir uns die Startprotokollinformationen oben ansehen.

    Wenn die Master-Slave-Replikation zum ersten Mal gestartet wird, sendet der Master seine Runid an den Slave und der Slave speichert die ID des Masters. Wir können sie mit dem Befehl „info“ anzeigen. Fügen Sie hier eine Bildbeschreibung ein Wenn die Verbindung wieder hergestellt wird, sendet der Slave diese ID an den Master. Wenn die vom Slave gespeicherte Runid mit der aktuellen Runid des Masters übereinstimmt, versucht der Master, eine teilweise Replikation zu verwenden (ein weiterer Faktor). ob dieser Block erfolgreich kopiert werden kann, ist der Offset). Wenn sich die vom Slave gespeicherte Runid von der aktuellen Runid des Masters unterscheidet, wird die vollständige Kopie direkt durchgeführt.

    2. Copy-Backlog-Puffer

    Der Copy-Puffer-Backlog ist eine First-In-First-Out-Warteschlange, in der der Benutzer Befehlsdatensätze des Masters speichert, um Daten zu sammeln. Der Standardspeicherplatz des Kopierpuffers beträgt 1 MB.

    Kann in der Konfigurationsdatei geändert werdenrepl -backlog -size 1mb um die Puffergröße zu steuern, je nach Ihrem eigenen Serverspeicher, den Kaka reserviert hat. repl-backlog-size 1mb来控制缓冲区大小,这个比例可以根据自己的服务器内存来修改,咔咔这边是预留出了30%左右。

    「复制缓冲区到底存储的是什么?」

    当执行一个命令为set name kakaRedis Master-Slave-Replikationsprinzip und häufige ProblemeRedis Master-Slave-Replikationsprinzip und häufige Probleme「Was genau wird im Kopierpuffer gespeichert?」

    Beim Ausführen eines Befehls als <h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 22px; border-bottom: 4px solid rgb(64, 184, 250);"> <span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">3. Replikationsoffset (Offset) </span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span> </h2> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"><img src="https://img-blog.csdnimg.cn/20200601165709395.png" alt="Redis Master-Slave-Replikationsprinzip und häufige Probleme" style="max-width:90%">Der Replikationsoffset des Masterknotens besteht darin, einen Datensatz einmal an den Slaveknoten zu senden, und der Slaveknoten soll einmal einen Datensatz empfangen. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"> Wird verwendet, um Informationen zu synchronisieren, die Unterschiede zwischen dem Master-Knoten und dem Slave-Knoten zu vergleichen und die Datennutzung wiederherzustellen, wenn der Slave getrennt wird. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Dieser Wert ist der Offset vom Backlog-Bereich des Kopierpuffers. </p> <h1 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 25px;"> <span class="prefix" style="color: rgb(64, 184, 250); display: none;"></span><span class="content" style="display: inline-block; color: rgb(64, 184, 250);">9. Häufige Probleme bei der Master-Slave-Replikation</span><span class="suffix" style="display: inline-block; color: rgb(64, 184, 250);"></span> </h1> <h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 22px; border-bottom: 4px solid rgb(64, 184, 250);"> <span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">1. Problem beim Neustart des Master-Knotens (interne Optimierung) Dies führt dazu, dass alle Slave-Knoten vollständig repliziert werden. </span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;">Wir müssen über dieses Problem nicht nachdenken, wir müssen nur wissen, wie das System optimiert ist. </span> </h2>Nachdem die Master-Slave-Replikation eingerichtet ist, erstellt der Masterknoten die Master-Replid-Variable. Die generierte Strategie ist die gleiche wie die Runid, die Länge beträgt 41 Bit und die Runid-Länge beträgt 40 Bit und wird dann an gesendet der Slave-Knoten. <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"></p>Wenn der Befehl zum Herunterfahren und Speichern auf dem Masterknoten ausgeführt wird, wird eine RDB-Persistenz durchgeführt und die Runid und der Offset werden in der RDB-Datei gespeichert. Sie können den Befehl redis-check-rdb verwenden, um diese Informationen anzuzeigen. <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"></p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Laden Sie die RDB-Datei nach dem Neustart des Masterknotens und laden Sie die Repl-ID und den Repl-Offset in der Datei in den Speicher. Auch wenn alle Slave-Knoten als die vorherigen Master-Knoten betrachtet werden. </p> <h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 22px; border-bottom: 4px solid rgb(64, 184, 250);"> <span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">2. Das Slave-Knotennetzwerk ist unterbrochen und der Offset überschreitet die Grenze, was zu einer vollständigen Replikation führt</span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span> </h2> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Aufgrund einer schlechten Netzwerkumgebung ist das Slave-Knotennetzwerk unterbrochen. Der Replikations-Backlog-Pufferspeicher ist zu klein, was zu einem Datenüberlauf führt. Wenn der Slave-Knoten-Offset die Grenze überschreitet, erfolgt eine vollständige Replikation. Dadurch kann es zu wiederholten Vollkopien kommen. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Lösung: Ändern Sie die Größe des Replikations-Backlog-Puffers: repl-backlog-size</p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Einstellungsvorschläge: Testen Sie die Zeit, die der Master-Knoten benötigt, um eine Verbindung zum Slave-Knoten herzustellen, und ermitteln Sie die durchschnittliche Gesamtzahl der vom Master-Knoten generierten Befehle pro Sekunde write_size_per_second</p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Replikationspufferplatz Einstellung = 2 * Master-Slave-Verbindungszeit * Die Gesamtmenge der vom Masterknoten pro Sekunde generierten Daten </p> <h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 22px; border-bottom: 4px solid rgb(64, 184, 250);"> <span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">3. Häufige Netzwerkunterbrechungen </span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span> </h2> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"> aufgrund der hohen CPU Nutzung des Master-Knotens oder häufige Verbindungen vom Slave-Knoten. Das Ergebnis dieser Situation ist, dass verschiedene Ressourcen des Masterknotens stark belegt sind, einschließlich, aber nicht beschränkt auf Puffer, Bandbreite, Verbindungen usw. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Warum sind die Ressourcen des Masterknotens stark belegt? </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Im Heartbeat-Mechanismus sendet der Slave-Knoten jede Sekunde einen Befehl replconf ack an den Master-Knoten. Auf dem Slave-Knoten wurde eine langsame Abfrage ausgeführt, die viel CPU beansprucht. Der Master-Knoten ruft jede Sekunde die Replikations-Timing-Funktion replicationCron auf, und der Slave-Knoten antwortet dann lange Zeit nicht. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Lösung: </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Slave-Knoten-Timeout-Freigabe festlegen </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Parameter einstellen: repl-timeout</p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Dieser Parameter ist standardmäßig auf 60 Sekunden eingestellt. Lassen Sie den Slave nach 60 Sekunden los. </p> <h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 22px; border-bottom: 4px solid rgb(64, 184, 250);"> <span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">4. Dateninkonsistenzproblem</span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span> </h2> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Aufgrund von Netzwerkfaktoren sind die Daten mehrerer Slave-Knoten inkonsistent. Es gibt keine Möglichkeit, diesen Faktor zu vermeiden. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Für dieses Problem gibt es zwei Lösungen: </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Die ersten Daten müssen hochkonsistent sein und einen Redis-Server konfigurieren und einen Server sowohl zum Lesen als auch zum Schreiben verwenden. Diese Methode ist auf eine kleine Datenmenge beschränkt muss sehr konsistent sein. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Der zweite überwacht den Offset des Master-Slave-Knotens. Wenn die Verzögerung des Slave-Knotens zu groß ist, wird der Zugriff des Clients auf den Slave-Knoten vorübergehend blockiert. Setzen Sie den Parameter auf „slave-serve-stale-data ja|nein“. Sobald dieser Parameter gesetzt ist, kann er nur auf einige wenige Befehle reagieren, wie z. B. „Info Slaveof“. </p> <h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 22px; border-bottom: 4px solid rgb(64, 184, 250);"> <span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">5. Slave-Knotenfehler</span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span> </h2> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Dieses Problem verwaltet direkt eine Liste der verfügbaren Knoten auf dem Client. Dieses Problem wird später im Cluster besprochen . </p> <h1 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 25px;"> <span class="prefix" style="color: rgb(64, 184, 250); display: none;"></span><span class="content" style="display: inline-block; color: rgb(64, 184, 250);"> 10. Zusammenfassung</span><span class="suffix" style="display: inline-block; color: rgb(64, 184, 250);"></span> </h1> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Dieser Artikel erklärt hauptsächlich, was Master-Slave-Replikation ist, die drei Hauptphasen der Master-Slave-Replikationsarbeit und die drei Kerne des Workflows und der Teilreplikation. Heartbeat-Mechanismus während der Befehlsweitergabephase. Abschließend werden häufige Probleme bei der Master-Slave-Replikation erläutert. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Das Schreiben dieses Artikels hat zwei Tage gedauert. Dies ist auch der längste Artikel, den Kaka in Zukunft veröffentlicht hat. Ich werde nicht mehrere Artikel veröffentlichen, um ein einzelnes Problem zu erklären . Ich werde alles in einem Artikel beenden. Unvollständige oder falsche Wissenspunkte werden verbessert, wenn Kakas Wissenspunkte zunehmen. Der Artikel dient hauptsächlich der Bequemlichkeit der Kaka-Rezension. Wenn Sie Fragen haben, schauen Sie sich den Kommentarbereich an. </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">Kaka hofft, dass alle gemeinsam kommunizieren und lernen können. Wenn etwas nicht stimmt, können Sie es nicht kritisieren. </p> <blockquote data-tool="mdnice编辑器" style="font-size: 0.9em; overflow: auto; padding-top: 10px; padding-bottom: 10px; padding-right: 10px; margin-bottom: 20px; margin-top: 20px; text-size-adjust: 100%; line-height: 1.55em; border-radius: 6px; color: rgb(89, 89, 89); box-sizing: inherit; border-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-color: rgba(64, 184, 250, 0.4); border-image: initial; background: rgba(64, 184, 250, 0.1);"> <span style="color: RGBA(64, 184, 250, .5); font-size: 34px; line-height: 1; font-weight: 700;">❝</span><p style="padding-top: 8px; padding-bottom: 8px; font-size: 14px; word-spacing: 2px; margin-top: 0px; margin-bottom: 0px; line-height: 26px;">Beharrlichkeit beim Lernen, Beharrlichkeit beim Bloggen und Beharrlichkeit beim Teilen sind die Überzeugungen, die Kaka seit seiner Karriere immer vertreten hat. Ich hoffe, dass Kakas Artikel im riesigen Internet Ihnen ein wenig helfen können die nächste Ausgabe. </p> <span style="float: right; color: RGBA(64, 184, 250, .5);">❞</span> </blockquote>

    Empfohlen: „Redis-Tutorial

  • Das obige ist der detaillierte Inhalt vonRedis Master-Slave-Replikationsprinzip und häufige Probleme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn