suchen
HeimDatenbankRedisErfahren Sie mehr über die Master-Slave-Replikation in Redis

Dieser Artikel führt Sie in die Master-Slave-Replikation in Redis ein, stellt die grundlegende Master-Slave-Konfiguration sowie die Funktionen und Prinzipien der Master-Slave-Konfiguration vor. Ich hoffe, er wird Ihnen hilfreich sein!

Erfahren Sie mehr über die Master-Slave-Replikation in Redis

Redis unterstützt die Master-Slave-Replikationsfunktion. Sie können die Replikationsfunktion aktivieren, indem Sie „slaveof“ (nach Redis5-Version in „replicaof“ geändert) ausführen oder „slaveof“ in der Konfigurationsdatei festlegen (nach Redis5-Version in „replicaof“ geändert). [Verwandte Empfehlungen: Redis-Video-Tutorial]

  • Ein Master und zwei Cluster

Erfahren Sie mehr über die Master-Slave-Replikation in Redis

  • Ein Master und mehrere Slaves

Erfahren Sie mehr über die Master-Slave-Replikation in Redis

Master-Slave-Grundkonfiguration

Master-Redis.-Konfiguration

Master-Redis-Konfiguration Es besteht grundsätzlich keine Notwendigkeit, Änderungen vorzunehmen.

Konfigurieren Sie von Redis aus

3. Konfigurieren Sie die Master-Slave-Replikation

# salve的端口号
port 6380 

#把pid进程号写入pidfile配置的文件
pidfile /var/run/redis_6380.pid 

logfile "6380.log"  

#指定数据存放目录
dir /usr/local/redis‐5.0.3/data/6380 

#需要注释掉bind
#bind127.0.0.1(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可)

5. Verbinden Sie den Slave-Knoten

#从本机master6379的redis实例复制数据,Redis5.0之前使用slaveof
replicaof 192.168.0.60 6379

#配置从节点只读
replica‐read‐only yes

6 Die Instanz kann die neu geänderten Daten rechtzeitig synchronisieren , und der Slave ist für das Lesen verantwortlich.

Verbessern Sie die Leistung und den Durchsatz von Redis , der Slave kann lesen, aber nicht schreiben

Standardmäßig kann der Slave nach dem Ausfall des Hosts nicht mehr vom Host verwendet werden

Sentinel kann Master-Slave-Switching realisieren, um eine hohe Verfügbarkeit zu erreichen

Das Funktionsprinzip des Redis-Masters -Slave

Vollständige Kopie der Master-Slave-Replikation

Nur wenn das Slave-Redis zum ersten Mal eine Verbindung zum Master-Redis herstellt, erfolgt die vollständige Kopie. Wenn es sich um eine kurzfristige fortgesetzte Übertragung handelt, handelt es sich möglicherweise um eine vollständige Kopie . Kopie, möglicherweise Teilkopie.

Flowchart

  • 1. Erstellen Sie eine lange Sockker -Verbindung mit dem Master Redis
  • slaver eine Socket -Verbindung mit dem zugeordneten Master

slaver -Associal -Ereignisprozessor. Dateien (vollständige Kopie), empfangen Sie den vom Master übertragenen Schreibbefehl (inkrementelle Kopie)

  • Nachdem der Master-Server die Socket-Verbindung des Slave-Servers akzeptiert hat, erstellt er den entsprechenden Client-Status. Dies entspricht der Tatsache, dass der Slave-Server der Client des Master-Servers ist.

Ping-Befehl senden

Slaver sendet Ping-Befehl an Master

  • 1. Überprüfen Sie den Lese- und Schreibstatus des Sockets

Erfahren Sie mehr über die Master-Slave-Replikation in Redis2. Überprüfen Sie, ob der Master damit normal umgehen kann

Erfahren Sie mehr über die Master-Slave-Replikation in Redis

Master-Antwort:

1. Senden Sie „Pong“, was auf „Normal“ hinweist

  • 2. Geben Sie einen Fehler zurück, was darauf hinweist, dass der Master abnormal ist

Erfahren Sie mehr über die Master-Slave-Replikation in Redis3. Zeitüberschreitung, was auf eine Netzwerk-Zeitüberschreitung hinweist

Erfahren Sie mehr über die Master-Slave-Replikation in Redis

    Berechtigungsüberprüfung
  • Nachdem Master und Slave normal verbunden sind, führen Sie eine Berechtigungsüberprüfung durch
    • Der Master hat kein Passwort festgelegt (requirepass="") und es besteht keine Notwendigkeit, ein Passwort festzulegen (masterauth="")

      Der Master legt ein Passwort fest (requirepass! =""), von der Notwendigkeit, ein Passwort festzulegen (masterauth=der Wert des requirepass des Masters)
      • oder vom Senden eines Passworts an den Master über die Authentifizierung Befehl

      • 2 Der Master-Redis empfängt den Befehl bgsave, nachdem der PSYNC-Befehl den neuesten RDB-Snapshot generiert an den Slave-Redis. Wenn der Master-Redis den RDB-Snapshot an den Slave-Redis sendet, empfängt der Master weiterhin die Anforderungen des Clients, die den Datensatz im Speicher ändern können, und speichert sie im Relp-Puffer-Cache
        • Synchronisierungs-Snapshot-Phase: Master erstellt und sendet Snapshot-RDB an Slave, und Slave lädt und analysiert den Snapshot. Der Master speichert auch die in dieser Phase neu generierten Schreibbefehle im Puffer.

        4. Der Slave-Knoten empfängt den RDB-Snapshot. Nachdem der Slave-Knoten den RDB-Snapshot empfangen hat, löscht er die alten Daten und lädt die RDB-Datei Slave Redis

        Schreibpuffer synchronisieren Stufe: Der Master synchronisiert den im Puffer gespeicherten Schreibvorgangsbefehl mit dem Slave.

        6. Der Slave-Knoten empfängt die Puffer-Cache-Datei

        Der Slave-Knoten empfängt die Puffer-Cache-Datei und lädt die Puffer-Cache-Datei in den Speicher

        7 Der Master-Redis sendet kontinuierlich Befehle an den Slave-Knoten Socker lange Verbindung

        Empfangen Sie den vom Master-Redis gesendeten Befehl von Redis und führen Sie den aktuellen Befehl aus

        Übersicht

        Wenn Sie einen Slave für den Master konfigurieren, unabhängig davon, ob der Slave zum ersten Mal mit dem Master verbunden ist Gleichzeitig wird ein PSYNC-Befehl an den Master gesendet, der zum Kopieren von Daten auffordert. Nachdem der Master den PSYNC-Befehl empfangen hat, führt er eine Datenpersistenz im Hintergrund durch und generiert die neueste RDB-Snapshot-Datei über bgsave. Während des Persistenzzeitraums empfängt der Master weiterhin Clientanforderungen und speichert diese Anforderungen, die möglicherweise geändert werden Datensatz im Speicher. Wenn die Persistenz abgeschlossen ist, sendet der Master den RDB-Dateidatensatz an den Slave, und der Slave speichert die empfangenen Daten, um RDB zu generieren, und lädt sie dann in den Speicher. Anschließend sendet der Master den zuvor im Speicher zwischengespeicherten Befehl an den Slave. Wenn die Verbindung zwischen dem Master und dem Slave aus irgendeinem Grund getrennt wird, kann der Slave automatisch wieder eine Verbindung zum Master herstellen. Wenn der Master mehrere gleichzeitige Verbindungsanforderungen des Slaves empfängt, bleibt er nur einmal bestehen, nicht einmal für jede Verbindung, und sendet sie dann diese persistenten Daten an mehrere gleichzeitig verbundene Slaves weiter.

        Teilkopie der Master-Slave-Kopie

        Der allgemeine Vorgang ähnelt der vollständigen Kopie, daher werde ich ihn nicht im Detail erklären

        Kurze BeschreibungErfahren Sie mehr über die Master-Slave-Replikation in Redis

        Wenn Master und Slave getrennt werden und Bei erneuter Verbindung werden in der Regel die gesamten Daten kopiert. Ab Redis-Version 2.8 verwendet Redis jedoch den Befehl PSYNC, der eine teilweise Datenreplikation unterstützen kann, um Daten mit dem Master zu synchronisieren. Der Slave und der Master können nur eine teilweise Datenreplikation (wiederaufnahme der Übertragung) durchführen, nachdem die Netzwerkverbindung getrennt und wieder hergestellt wurde. Der Master erstellt eine Cache-Warteschlange zum Kopieren von Daten in seinem Speicher, um die Daten für den letzten Zeitraum zwischenzuspeichern. Der Master und alle seine Slaves behalten den Index-Offset der kopierten Daten und die Prozess-ID des Masters bei. Anschließend fordert der Slave den Master auf, die noch nicht abgeschlossene Replikation beginnend mit dem aufgezeichneten Datenindex fortzusetzen. Wenn sich die Master-Prozess-ID ändert oder der Datenoffset des Slave-Knotens zu alt ist und sich nicht mehr in der Cache-Warteschlange des Masters befindet, wird eine vollständige Datenkopie durchgeführt. Flussdiagramm der Master-Slave-Replikation (teilweise Replikation, Haltepunkt-Wiederaufnahme):

        Inkrementelle Synchronisierung der Master-Slave-Replikation

        Die inkrementelle Redis-Synchronisation bezieht sich hauptsächlich auf die Schreibvorgänge, die auf dem Master ausgeführt werden, wenn der Slave die Initialisierung abschließt und startet Der Prozess der Synchronisierung mit dem Slave funktioniert normal.

          Normalerweise sendet der Master jedes Mal, wenn er einen Schreibbefehl ausführt, denselben Schreibbefehl an den Slave, und der Slave empfängt ihn dann und führt ihn aus.
        • Heartbeat-Erkennung der Master-Slave-Replikation

        1. Ermitteln Sie den Verbindungsstatus des Master-Slave-Servers. Ermitteln Sie den Netzwerkverbindungsstatus des Master-Slave-Servers Beim Master-Server können Sie die Liste der Slave-Server auflisten. Sie können sehen, wie viele Sekunden vergangen sind, seit der letzte Befehl an den Master gesendet wurde. Der Wert von Lag sollte zwischen 0 und 1 springen. Wenn er 1 überschreitet, bedeutet dies, dass die Verbindung zwischen Master und Slave fehlerhaft ist.

        2. Hilfsimplementierung von Min-Slaves

        Redis kann so konfiguriert werden, dass der Hauptserver den Schreibbefehl min-slaves-to-write 3 (min-replicas-to-write 3) unter min-slaves ausführt unsichere Bedingungen -max-lag 10 (min-replicas-max-lag 10) Die obige Konfiguration bedeutet: wenn die Anzahl der Slave-Server weniger als 3 beträgt oder der Verzögerungswert (Lag) der drei Slave-Server größer oder gleich ist Auf 10 Sekunden wird dem Master-Server die Ausführung des Schreibbefehls verweigert. Der Verzögerungswert ist hier der Verzögerungswert des obigen INForeplication-Befehls.

        3. Befehlsverlust erkennen

        Wenn der vom Master-Server an den Slave-Server übertragene Schreibbefehl aufgrund eines Netzwerkfehlers auf halbem Weg verloren geht, sendet der Slave-Server den REPLCONF ACK-Befehl an den Master-Server Der Server erkennt den aktuellen Status des Slave-Servers. Wenn der Replikations-Offset kleiner als sein eigener Replikations-Offset ist, findet der Master-Server die fehlenden Daten vom Slave-Server im Replikations-Backlog-Puffer basierend auf dem vom Slave übermittelten Replikations-Offset Server und senden Sie die Daten erneut an den Slave-Server. (Neuauflage) Das Netzwerk wird kontinuierlich inkrementell synchronisiert: Die Netzwerkverbindung wird getrennt und bei erneuter Verbindung wieder hergestellt

        So beurteilen Sie die vollständige oder teilweise Kopie

        Erfahren Sie mehr über die Master-Slave-Replikation in Redis

        Nachdem der Client „saveof“ gesendet hat, beurteilt der Masterknoten, ob er zum ersten Mal kopiert wird. Wenn ja, führt er eine vollständige Kopie durch , es wird anhand des Runid-Offsets beurteilt. Wenn sie konsistent sind, wird eine Teilkopie erstellt, andernfalls wird eine vollständige Kopie erstellt.

        Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !

Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über die Master-Slave-Replikation in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:掘金社区. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Redis: Enthüllung seines Zwecks und der wichtigsten AnwendungenRedis: Enthüllung seines Zwecks und der wichtigsten AnwendungenMay 03, 2025 am 12:11 AM

Redisisanopen-Source, In-MemoryDatastructurEnusedasadatabase, Cache und MessageBroker, ExcellingInSpeedandversatility

Redis: Eine Anleitung zu SchlüsselwertdatenspeichernRedis: Eine Anleitung zu SchlüsselwertdatenspeichernMay 02, 2025 am 12:10 AM

Redis ist ein Open -Source -Speicherdatenstrukturspeicher, der als Datenbank, Cache und Message Broker verwendet wird und für Szenarien geeignet ist, in denen eine schnelle Reaktion und eine hohe Parallelität erforderlich sind. 1.Redis verwendet Speicher, um Daten zu speichern, und bietet mikrosekundenüberlesene und schreibgeschwindige. 2. Es unterstützt eine Vielzahl von Datenstrukturen wie Zeichenfolgen, Listen, Sammlungen usw.. 4. Verwenden Sie ein Single-Thread-Modell und die Multiplexing-Technologie, um Anforderungen effizient zu bearbeiten. 5. Leistungsoptimierungsstrategien umfassen den LRU -Algorithmus und der Clustermodus.

Redis: Caching, Sitzungsmanagement und mehrRedis: Caching, Sitzungsmanagement und mehrMay 01, 2025 am 12:03 AM

Die Funktionen von Redis enthalten hauptsächlich Cache, Sitzungsmanagement und andere Funktionen: 1) Die Cache-Funktion speichert Daten über den Speicher, um die Lesegeschwindigkeit zu verbessern, und eignet sich für hochfrequente Zugriffsszenarien wie E-Commerce-Websites. 2) Die Sitzungsverwaltungsfunktion teilt Sitzungsdaten in einem verteilten System und reinigt sie automatisch über einen Mechanismus für Ablaufzeiten. 3) Andere Funktionen wie Publish-Subscribe-Modus, verteilte Sperren und Zähler, geeignet für Echtzeit-Nachrichten-Push- und Multi-Thread-Systeme und andere Szenarien.

Redis: Erforschen der Kernfunktionalität und -vorteileRedis: Erforschen der Kernfunktionalität und -vorteileApr 30, 2025 am 12:22 AM

Zu den Kernfunktionen von Redis gehören Speicherspeicher- und Persistenzmechanismen. 1) Speicherspeicher bietet extrem schnelle Lesen und Schreibgeschwindigkeiten, die für Hochleistungsanwendungen geeignet sind. 2) Persistenz stellt sicher, dass Daten nicht durch RDB und AOF verloren gehen, und die Auswahl basiert auf den Anwendungsanforderungen.

Die serverseitigen Vorgänge von Redis: Was es bietetDie serverseitigen Vorgänge von Redis: Was es bietetApr 29, 2025 am 12:21 AM

RedissServer-SideoperationsFerFunktionen und TiggersforexexecutingComplexoperationsontheserver.1) FunctionsAllowcustomoperationssinlua, JavaScript, Orredis 'scriptinguanguage, EnhancingScalability und Mains.2) TriggersenableAnlace-FunktionexectionexexecialtonexectureExexecialtonexecialtonexectureExexecialsoneOne

Redis: Datenbank oder Server? Entmystifizieren die RolleRedis: Datenbank oder Server? Entmystifizieren die RolleApr 28, 2025 am 12:06 AM

Redisisbothadatabaseandaserver.1) Asadatabase, itusesin-MemoryStorageForfastAccess, IdealForreal-TimeApplications und -Caching.2) Asaserver, IssupportSpub/SubsagingandLuaScriptingForreal-Timecommunicationandserver-Ssideoperationen.

Redis: Die Vorteile eines NoSQL -AnsatzesRedis: Die Vorteile eines NoSQL -AnsatzesApr 27, 2025 am 12:09 AM

Redis ist eine NoSQL -Datenbank, die eine hohe Leistung und Flexibilität bietet. 1) Speichern Sie Daten über Schlüsselwertpaare, die für die Verarbeitung großer Daten und hoher Parallelität geeignet sind. 2) Speicherspeicher- und Single-Thread-Modelle sorgen für schnelles Lesen und Schreiben und Atomizität. 3) Verwenden Sie RDB- und AOF-Mechanismen, um Daten zu bestehen, wodurch hohe Verfügbarkeit und Skalierung unterstützt werden.

Redis: Verständnis seiner Architektur und des ZwecksRedis: Verständnis seiner Architektur und des ZwecksApr 26, 2025 am 12:11 AM

Redis ist ein Speichersystem für Speicherdatenstruktur, das hauptsächlich als Datenbank, Cache und Message Broker verwendet wird. Zu den Kernmerkmalen gehören ein Einzel-Thread-Modell, E/A-Multiplexing, Persistenzmechanismus, Replikations- und Clustering-Funktionen. Redis wird üblicherweise in praktischen Anwendungen für Caching-, Sitzungsspeicher- und Nachrichtenwarteschlangen verwendet. Es kann seine Leistung erheblich verbessern, indem die richtige Datenstruktur ausgewählt, Pipelines und Transaktionen verwendet und überwacht und stimmt.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.