Wenn Sie sich auf Sentinels verlassen, um eine hohe Verfügbarkeit von Redis zu erreichen, und wenn Sie eine hohe Parallelität unterstützen und gleichzeitig große Datenmengen verarbeiten möchten, benötigen Sie einen Redis-Cluster. Redis-Cluster ist eine von Redis bereitgestellte verteilte Datenspeicherlösung. Der Cluster teilt Daten durch Daten-Sharding und bietet Replikations- und Failover-Funktionen.
Ein Redis-Cluster besteht aus mehreren Knoten, und mehrere Knoten werden über den Cluster-Meet-Befehl verbunden. Der Knoten-Handshake-Prozess:
Knoten A empfängt den Cluster-Meet-Befehl vom Client
A sendet einen Meet-Nachricht an B basierend auf der empfangenen IP-Adresse und Portnummer
Knoten B empfängt die Meet-Nachricht und gibt Pong zurück
A weiß, dass B die Meet-Nachricht empfangen hat, gibt eine Ping-Nachricht zurück und der Handshake ist erfolgreich
Schließlich verteilt Knoten A die Informationen von Knoten B über das Klatschprotokoll an andere Knoten im Cluster, und andere Knoten geben B ebenfalls die Hand Daten: Die gesamte Cluster-Datenbank ist in 16384 Slots unterteilt. Jeder Knoten im Cluster kann 0 bis 16384 Slots in der Datenbank verarbeiten. Andernfalls ist der Cluster online verfügbar, die gesamte Verarbeitung übernimmt den Offline-Status. Slots können den entsprechenden Knoten zur Verarbeitung über den Befehl „cluster addslots“ zugewiesen werden.
Wenn Sie Knoten hinzufügen oder entfernen, ist es auch sehr praktisch, Slots neu zuzuweisen. Redis bietet Tools zur Realisierung der Slot-Migration. Der gesamte Prozess erfolgt vollständig online und erfordert keine Unterbrechung des Dienstes.
Failover
Wenn Knoten A eine Ping-Nachricht an Knoten B sendet und Knoten B nicht innerhalb der angegebenen Zeit auf Pong antwortet, markiert Knoten A Knoten B als pfail und vermutet, dass er offline ist, und gleichzeitig Senden Sie den Status von B in Form einer Nachricht an andere Knoten. Wenn mehr als die Hälfte der Knoten B als pfail markieren, wird B als Failover markiert und es wird ein Slave-Knoten mit mehr replizierten Daten angezeigt wird zuerst als Master-Knoten ausgewählt und übernimmt den Slot des Offline-Knotens. Der gesamte Prozess ist dem von Sentinel sehr ähnlich und basiert auf dem Raft-Protokoll.
Das obige ist der detaillierte Inhalt vonBeispielanalyse des Redis-Cluster-Prinzips. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!