Es gibt ein Sprichwort über die Rolle der Redis-Master-Slave-Replikation: „Die Master-Slave-Replikation ist der Grundstein für hohe Verfügbarkeit.“ Bereitstellung, die oft gehört wird. Basierend auf sechs 9ern sind Sentinels und Cluster unerlässlich, um eine hohe Verfügbarkeit zu erreichen . Ich werde einige Wissenspunkte hinzufügen, die später nicht hinzugefügt wurden. Ich freue mich auch darauf, Sie im Kommentarbereich zu sehen!❞
Hier Bildbeschreibung einfügen
In diesem Artikel wird Sentinel hauptsächlich unter den folgenden Aspekten vorgestellt:
Einführung in Sentinel
Konfigurieren Sie
Sentinel-Jobprinzip Die Implementierungsumgebung dieses Artikels führt simulierte Vorgänge aus in einer virtuellen Maschine
1. Was ist ein Sentinel? Wenn wir die Master-Slave-Replikation konfigurieren, gibt es eine Situation, in der der Masterknoten ausfällt Dienste, wenn der Masterknoten ausfällt? In der Zeit, in der Daten König sind, gibt es keine Hochverfügbarkeit ohne Daten Der große Bruder sagte, dass ich dir bei diesem Problem helfen werde
Da der Master-Knoten-Master Sie als Chef nicht zum Spielen führen wird. Ich werde unter euch vieren einen Boss auswählen und dann werdet ihr mit ihm spielen.
Wenn der Chef, der nicht mit Ihnen spielt, zurückkommt, wird seine Identität ungültig und er wird nicht länger Ihr Chef sein. Er kann nur mit dem Boss spielen, den ich ausgewählt habe.
Der obige Dialogprozess ist genau das, was es für uns bedeutet, Wächter zu konfigurieren. Wer auch immer wir spielen, wird wem Daten geben. Sobald wir die Rolle von Wächtern verstanden haben, werden wir fortfahren.
„Lassen Sie uns abschließend erklären, was ein Sentinel in professioneller Hinsicht ist.“
Sentinel, der englische Name ist Sentinel, ist ein verteiltes System, das zur Steuerung jedes Servers in der Master-Slave-Struktur verwendet wirdMonitoring, wenn der Master-Knoten ausfällt, wird der Abstimmungsmechanismus verwendet Wählen Sie einen neuen Master-Knoten aus und verbinden Sie alle Slave-Knoten mit dem neuen Master-Knoten. 监控,当主节点出现故障后通过投票机制来挑选新的主节点,并且将所有的从节点连接到新的主节点上。
Der Konversationsprozess, über den wir oben gesprochen haben, ist eine der Funktionen von Sentinel, das automatische Failover. 🎜🎜Wenn es um die Funktion geht, muss es genau das sein, was dieser Wächter bei der Arbeit tut. Beschreiben wir es zunächst in einem relativ trockenen Konzept und sprechen wir dann im Folgenden nacheinander über die Arbeitsprinzipien. 🎜🎜Drei Funktionen von Sentry🎜<ul data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;">
<li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;">Überwachung<ul style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; list-style-type: square;">
<li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;">Wen soll überwacht werden? Um die Master-Slave-Struktur zu unterstützen, ist einer der Master-Knoten und der andere der Slave-Knoten, daher muss er diese beiden überwachen. </section></li>
<li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;">Überwachen Sie, ob der Master-Knoten und die Slave-Knoten normal laufen Wenn ein Problem mit dem Server von Sentinel erkannt wird, werden Benachrichtigungen an andere Sentinels gesendet. Die von jedem Sentinel entdeckten Probleme werden in dieser Gruppe veröffentlicht. </section></li>
<li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;"></section></li>
</ul>Automatisches Failover</section></li>
<li>Wenn erkannt wird, dass der Master-Knoten ausgefallen ist, trennen Sie alle mit dem ausgefallenen Master-Knoten verbundenen Slave-Knoten, wählen Sie einen der Slave-Knoten als Master-Knoten aus und ersetzen Sie dann den anderen Slave-Knoten. Der Knoten ist mit diesem neuesten Master-Knoten verbunden. Und informieren Sie den Client über die neueste Serveradresse. <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;"><ul style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; list-style-type: square;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;"></section></li></ul>Hier ist zu beachten, dass Sentinel auch ein Redis-Server ist, der jedoch keine Dienste für die Außenwelt bereitstellt. </section>
</li>Konfigurieren Sie den Sentinel als ungerade Zahl. Warum also die Anzahl der Sentinel-Server auf eine ungerade Zahl konfigurieren? Mit dieser Frage finden Sie unten die gewünschte Antwort. <li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;"><ul style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; list-style-type: square;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;"> 2. So konfigurieren Sie den Sentinel </section></li></ul></section></li>
</ul>
<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> 1. Vorbereitung <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>
<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>In diesem Kapitel beginnen wir mit der Konfiguration des Sentinel und bereiten uns auf die Vorarbeiten vor. Das Bild unten zeigt Kakas Vorbereitungen. Starten Sie 8 Clients, drei Sentinels, einen Master-Knoten, zwei Slave-Knoten, einen Master-Knoten-Client und einen Slave-Knoten-Client. <span class="content" style="display: inline-block; color: rgb(64, 184, 250);"></span><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. Interpretation der Sentinel.conf-Konfiguration</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>
</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;">Die von Sentinel verwendete Konfigurationsdatei ist<code style="overflow-wrap: break-word; margin: 0px 2px; font-family: " operator mono consolas monaco menlo monospace word-break: break-all color: rgb background: rgba padding: border-radius: height: line-height:>sentinel.conf我们来对sentinel.conf配置信息进行解读但是大多数都是注释,这里咔咔给大家提供一个命令来过滤这些无用信息 cat sentinel.conf | grep -v '#' | grep -v '^$'
Port 26379: Externe Service-Portnummer
dir /tmp: Speicherung von Sentinel-Arbeitsinformationen
Sentinel Monitor Mymaster 127.0.0.1 6379 2: Wer überwacht wird, der Name kann angepasst werden, die 2 dahinter Es stellt dar: Wenn es zwei Sentinels gibt, die feststellen, dass der Master-Knoten ausgefallen ist, wird der Master-Knoten normalerweise auf die Hälfte der Sentinels plus eins eingestellt.
Sentinel down-after-milliseconds mymaster 30000: Wie lange dauert es, bis der Sentinel eine Verbindung zum Masterknoten herstellt, ohne zu antworten, was bedeutet, dass er ausgefallen ist? Die folgenden 30000 sind Millisekunden, also 30 Sekunden.
sentinel parallel-syncs mymaster 1: Dieses Konfigurationselement bezieht sich auf die maximale Anzahl von Slave-Knoten, die sich während eines Failovers mit dem neuen Master-Knoten synchronisieren können. Je kleiner der Wert, desto länger dauert es, bis der Failover abgeschlossen ist. Je größer der Wert, desto mehr Slave-Knoten sind aufgrund der Datensynchronisierung nicht verfügbar.
sentinel failover-timeout mymaster 180000: Die Dauer des Synchronisierungsvorgangs wird als effektiv angesehen. Der Systemstandardwert beträgt 3 Minuten.
Testen Sie, ob die Master-Slave-Replikation normal funktioniert, starten Sie drei Redis-Server und die Ports sind 6379, 6380, 6381Wenn man sich die Informationen zum Master-Knoten ansieht, sind zwei Slave-Knoten verbunden und die Ports sind 6380 bzw. 6381. 6379、6380、6381查看主节点信息,是有俩台从节点在连接着,端口分别为6380、6381。
这里有一个小小的点就是lag怎么一个是1一个是0呢!lag是延迟时间,我这里是本地测试所以会出现0的情况,使用云服务器是很少出现的。lag的值为0和1都属于正常。测试主节点添加一个hash值,hset kaka name kakaEin kleiner Punkt hier ist, dass einer der Lags 1 und der andere 0 ist! Verzögerung ist die Verzögerungszeit, die ich lokal teste, daher liegt die Situation bei 0. Dies passiert selten, wenn ein Cloud-Server verwendet wird. Die Verzögerungswerte sind 0 und 1, was normal ist. Testen Sie den Hauptknoten, um einen Hash-Wert hinzuzufügen, 连接26379哨兵,主要是最后一行,监控的主节点名为mymaster,状态正常,从节点有俩个,哨兵数量为1个在来查看一下26379的哨兵配置信息,这个时候已经改动了在启动一个26380的哨兵,redis-sentinel 26380-sentinel.conf,这里注意一下最后一行多了一条信息,这个id就是我们26379Die neu hinzugefügte ID in der KonfigurationsdateiDann kommen wir zum Client von Sentinel 26379, der auch die neu hinzugefügte ID von 26380 Sentinel istZu diesem Zeitpunkt überprüfen wir die Konfigurationsdatei von 26379 Sentinel, Überprüfen Sie die Konfiguration zum ersten Mal. In der Datei ist 26380 Sentinel nicht konfiguriert. Beim zweiten Anzeigen wurden die Informationen hinzugefügt, nachdem 26380 Sentinel konfiguriert wurde. Zuletzt müssen wir Sentinel-Client 3 starten, die Portnummer ist 26381. Nach dem Start werden auch unsere Konfigurationsinformationen und Serverinformationen geändert. Wenn wir die Informationen von Sentinel 26380 hinzufügen, verfügt auch Sentinel 26381 über diese.
Bis zu diesem Punkt ist unsere Konfiguration von Sentinel abgeschlossen. Nachdem wir 30 Sekunden gewartet haben, werden wir hier zum Client von 26379 kommen All diese Informationen wurden gemacht. Lassen Sie es uns aufschlüsseln.
Hier müssen wir zunächst ein paar Dinge wissen
+sdown: Diese Informationen beziehen sich auf einen der drei Sentinels, der denkt, dass der Masterknoten ausgefallen ist
+odown: Diese Informationen beziehen sich auf die anderen beiden Sentinels Ich habe eine Verbindung zum Masterknoten hergestellt und festgestellt, dass der Masterknoten tatsächlich ausgefallen ist. Dann hat Kaka eine Abstimmungsrunde gestartet. Diese Informationen unterscheiden sich geringfügig zwischen den Versionen. Master Mymaster 127.0.0.1 6379 127.0.0.1 6380: Bis hierher ist das Ergebnis der vom Sentinel initiierten Abstimmung, und das Redis mit Port 6380 wird als Master-Knoten gewählt
+Slave-Slave 127.0.0.1:6381 127.0. 0.1 6381 @ mymaster 127.0 .0.1 6380: Hier stellen wir eine Verbindung zwischen den Ports 6381 und 6379 und dem neuen Master-Knoten 6380 her 380: Der letzte Der Satz besagt, dass der Port 6379 immer noch nicht online war und daher offline geschaltet wurde. Ein Satz ist, 6379 offline zu entfernen. Der letzte Satz besteht darin, 6379 wieder mit dem neuen Masterknoten zu verbinden.
Zu diesem Zeitpunkt ist der Masterknoten 6380. Stellen Sie im Redis-Client den Wert 6380 ein, um zu überprüfen, ob die Master-Slave-Replikation ordnungsgemäß funktioniert.
Fügen Sie den Listentyp zum neuen Masterknoten 6380 hinzu. Erhalten Sie diesen Wert bei 6379 und 6381, fertig! Unsere Konfiguration des Wachmodus ist abgeschlossen.
3. Arbeitsprinzip von Sentinel
Nach der Konfiguration von Sentinel müssen Sie dessen Arbeitsprinzip analysieren. Nur wenn Sie den Arbeitsablauf kennen, können Sie Sentinel besser verstehen.
Die in diesem Artikel erklärten Prinzipien sind nicht so trocken! Ermöglicht Ihnen, einen technischen Artikel als Geschichte zu lesen.
Um es auf den Punkt zu bringen: Die Rolle des Wachpostens besteht in der Überwachung, Benachrichtigung und dem Failover. Dann dreht sich auch das Arbeitsprinzip um diese drei Punkte.
1. Überwachungsworkflow Der Meister Der Knoten zeichnet die Informationen der Redis-Instanz auf. Die vom Masterknoten aufgezeichneten Informationen ähneln tatsächlich den vom Sentinel aufgezeichneten Informationen.
Sentinel sendet außerdem Informationsbefehle an die entsprechenden Slave-Knoten basierend auf den vom Masterknoten erhaltenen Slave-Knoteninformationen.
Dann kommt Sentinel 2 und ändert auch den Masterknoten, um Informationsbefehle zu senden und cmd zu erstellen Verbinden Zu diesem Zeitpunkt speichert Sentinel 2 auch die gleichen Informationen wie Sentinel 1, es werden jedoch nur 2 Sentinel-Informationen gespeichert. Zu diesem Zeitpunkt wird eine Veröffentlichungs- und Abonnementverbindung zwischen ihnen hergestellt, sodass die Informationen jedes Sentinels konsistent sind. Um eine langfristige Informationssymmetrie zwischen den Sentinels sicherzustellen, senden sie sich auch gegenseitig Ping-Befehle.
Wenn ein weiterer Sentinel 3 kommt, wird er dasselbe tun und Informationen an den Master-Knoten und den Slave-Knoten senden. Und stellen Sie Verbindungen mit Sentinel 1 und Sentinel 2 her.
2. Benachrichtigungsworkflow
Sentinel sendet Befehle an alle Knoten des Masters und Slaves, um deren Status zu ermitteln, und veröffentlicht die Informationen im Sentinel-Abonnement.
3. Failover-Prinzip (der Schwerpunkt dieses Artikels) sdown. Dieses Wort kommt Ihnen vielleicht etwas bekannt vor. Das ist richtig, es handelt sich um die Informationen, die vom Sentinel-Server gemeldet wurden, nachdem wir den Masterknoten oben getrennt haben. Nachdem Sentinel den Ausfall des Masterknotens gemeldet hat, veröffentlicht Sentinel auch eine Nachricht im Intranet, um anzuzeigen, dass der Masterknoten ausgefallen ist. Der gesendete Befehl lautet
Hat der Masterknoten aufgelegt, nachdem die verbleibenden Wachposten die Anweisung erhalten hatten? Lassen Sie mich gehen und sehen, ob es hängt oder nicht. Die gesendete Nachricht ist auch Hallo. Die übrigen Wächter senden ebenfalls die empfangene Nachricht und senden den Befehl -break: break-all; background: rgba(59, 170, 250, 0.1); 2px; border-radius: 2px; height: 21px; line-height: 22px;">sentinel is-master-down-by-address-port
Gehen Sie zu Ihrem eigenen Intranet und bestätigen Sie den ersten gesendetensentinel is-master-down-by-address-port sagte, Sie haben Recht, dieser Typ ist tatsächlich am Boden. Wenn jeder denkt, dass der Masterknoten ausgefallen ist, wird sein Status in <code style="overflow-wrap: break-word; margin: 0px 2px; font-family: " operator mono consolas monaco menlo monospace ge wortumbruch: alle brechen hintergrund: rgba randradius: h>odown. Wenn ein Sentinel davon ausgeht, dass der Master-Knoten markiert ist, ist er „Break-All“; Farbe: RGB(53, 148, 247); ; height: 21px; line-height: 22px; Schriftfamilie: „Operator Mono“, Consolas, Monaco, Monospace; Farbe: rgb(53, 148, 247); : 0px 2px; Rahmenradius: 21px;">odown. Aus diesem Grund wird der Sentinel mit einer ungeraden Zahl konfiguriert.
Für einen Sentinel, der denkt, dass der Hauptknoten ausgefallen ist, wird dies als subjektiv offline bezeichnet, und die Hälfte der Sentinels glaubt, dass der Hauptknoten ausgefallen ist, was als offizieller Gast offline bezeichnet wird.
Sobald der Gastoffizier des Masterknotens als offline betrachtet wird, fährt der Sentinel mit dem nächsten Schritt fort
❝
Zu diesem Zeitpunkt hat der Sentinel das Problem erkannt, sodass Sentinel für die Wahl eines neuen verantwortlich ist Was den Hauptknoten betrifft, kann Li Si auch gehen. Das wird also Chaos verursachen.
❞
Dieses Mal! Die fünf Wächter werden ein gemeinsames Treffen abhalten. Alle Wächter werden dann in einem Intranet ihre eigenen Befehle senden und ihre eigenen Wahlzeiten und Runid übertragen. sentinel is-master-down-by-address-portJeder Sentinel ist sowohl Kandidat als auch Wähler. Jeder Sentinel hat eine Stimme und der Umschlag repräsentiert seine Stimmrechte. Wenn sentinel1 und sentinel4 gleichzeitig Anweisungen an die Gruppe senden, um sich auf die Wahl vorzubereiten, sagt sentinel2 zu diesem Zeitpunkt, dass ich für denjenigen stimmen werde, der die Anweisung zuerst erhält. Wenn Sentinel1 vorzeitig freigegeben wird, wird die Stimme von Sentinel2 für Sentinel1 abgegeben. Die Abstimmung wird gemäß diesen Regeln eingeleitet, bis die Stimmen eines Wächters die Hälfte der Gesamtzahl der Wächter ausmachen. Gehen Sie davon aus, dass Sentinel1 gewählt wird, nachdem die Anzahl der Sentinel1-Stimmen mehr als die Hälfte der Gesamtzahl der Sentinels erreicht hat. Zu diesem Zeitpunkt ist die nächste Stufe erreicht. Sentinel hat oben Sentinel1 als Vertreter ausgewählt, um zu allen Slave-Knoten zu gehen und einen als Master-Knoten zu finden. Es gibt bestimmte Regeln für die Auswahl eines Masterknotens, nicht nur für die zufällige Auswahl.
Werden Sie zuerst diejenigen los, die nicht online sind
Diejenigen mit langsamer Reaktion werden getötet. Diejenigen mit langsamer Reaktion werden getötet reicht nicht, es wird ein neuer Slave5 hinzugefügt. Es macht keinen Sinn! Nach den oben genannten drei Punkten gibt es immer noch Salbe4 und Sklave5, und sie werden nach dem Prioritätsprinzip überprüft.
Wenn die Priorität gleich ist, werden andere Beurteilungen vorgenommen
, um den Offset-Offset und die Datensynchronisation zu beurteilen 100, dann wird der Wächter denken, dass mit dem Netzwerk von Slave4 etwas nicht stimmt! Anschließend wird Slave5 als neuer Masterknoten ausgewählt. Was ist, wenn die Offsets von Slave4 und Slave5 gleich sind? Es gibt noch ein letztes Urteil
Der letzte Schritt besteht darin, den Runid zu beurteilen, d wird zuerst gereiht.
Nach der Auswahl eines neuen Masterknotens müssen Anweisungen an alle Knoten gesendet werden.
4. Zusammenfassung
Das sind alle Wissenspunkte über Sentinels. Das Wichtigste in diesem Artikel ist das Funktionsprinzip von Sentinels. Sehen wir uns kurz das Funktionsprinzip an.
Erster Monitor, und alle Sentinels synchronisieren Informationen
Die Sentinels veröffentlichen Informationen zum Abonnement
Failover
Sentinel hat festgestellt, dass der Masterknoten offline war.
Sentinel hat begonnen, für die verantwortliche Person zu stimmen.
Die verantwortliche Person wird einen neuen Masterknoten wählen , und andere Slave-Knoten sind verbunden. Der neue Master-Knoten wird als Slave-Knoten verbunden, nachdem der ursprüngliche Master-Knoten online ist.
Das Obige ist Kakas Verständnis von Sentinels. Wenn Fehler gemacht werden können, wird Kaka diese rechtzeitig korrigieren.
❝Beharrlichkeit beim Lernen, Beharrlichkeit beim Bloggen und Beharrlichkeit beim Teilen sind die Überzeugungen, an denen Kaka seit seiner Karriere festhält. Ich hoffe, dass Kakas Artikel im riesigen Internet Ihnen ein wenig helfen können Sie in der nächsten Ausgabe.
❞ Empfohlen: „Redis Tutorial
“
Das obige ist der detaillierte Inhalt vonRedis Sentinel-Prinzip, ich habe dich lange toleriert!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Erklärung dieser Website
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
So reinigen Sie alle Redis-Daten: Redis 2.8 und später: Der Befehl Flushall löscht alle Schlüsselwertpaare. Redis 2.6 und früher: Verwenden Sie den Befehl Del, um die Schlüssel nach dem anderen zu löschen oder den Redis -Client zum Löschen von Methoden zu löschen. Alternative: Starten Sie den Redis -Service (Verwendung mit Vorsicht) neu oder verwenden Sie den Redis -Client (z. B. Flushall () oder Flushdb ()).
Es gibt mehrere Mechanismen für die Kommunikation zwischen Redis-Instanzen: Pub/Sub: Publish/Sub-Modus und ermöglichen eine effiziente und niedrige Latenz-Nachrichten. Cluster -Modus: Verteilte Bereitstellungsmethode, die hohe Verfügbarkeit und Fehlertoleranz bietet. Cross-Instance-Befehl: Ermöglicht, Befehle direkt an eine andere Instanz zu senden, die für vorübergehende operative oder administrative Zwecke geeignet ist.
Redis kann auf zwei Arten neu gestartet werden: reibungsloser Neustart und hartem Neustart. Reibungsloser Neustart ohne Unterbrechung des Dienstes, sodass der Kunden den Betrieb fortsetzen kann. Der harte Neustart beendet den Prozess sofort, wodurch der Client die Daten trennen und verliert. Es wird empfohlen, in den meisten Fällen einen reibungslosen Neustart zu verwenden, nur wenn Sie ernsthafte Fehler beheben oder Ihre Daten bereinigen müssen.
Diese Anleitung bietet zwei Möglichkeiten, um die aktuelle Redis -Version zu bestimmen: Verwenden Sie den Befehl Info, um die Versionsnummer zu erhalten. Verwenden Sie die Option -Verssionsoption, um die Versionsnummer direkt anzuzeigen. Die Versionsnummer besteht aus der Hauptversionsnummer, der Sekundärversionsnummer und der Revisionsnummer, die jeweils wichtige Versionsaktualisierungen, funktionale Verbesserungen und geringfügige Fehlerbehebungen darstellen.
Redis implementiert Multi-Threading, indem er den Reaktormodus, den Thread-Pool und die internen Multi-Threading-Mechanismen geschickt kombiniert, wodurch die Multi-Core-CPUs effektiv verwendet werden, die Durchsatz verbessert, die Ressourcennutzung optimiert, eine geringe Latenz aufrechterhalten und die Skalierbarkeit verbessert und unterschiedliche Lastanforderungen erfüllt werden.
Die Schritte für den Neustart von Redis -Cluster sind wie folgt: Daten schließen und löschen und Protokolle. Starten Sie den Samenknoten. Erstellen Sie einen neuen Cluster. Fügen Sie die verbleibenden Knoten hinzu. Überprüfen Sie den Clusterstatus.
Redis -Transaktionen gewährleisten die Eigenschaften von Atomizität, Konsistenz, Isolation und Persistenz (Säure) und arbeiten wie folgt: Starten Sie eine Transaktion: Verwenden Sie den Multi -Befehl. Datensatzbefehl: Führen Sie eine beliebige Anzahl von Redis -Befehlen aus. Commit- oder Rollback -Transaktionen: Verwenden Sie den Exec -Befehl, um die Transaktion zu begehen, oder den Befehl entlassen, um die Transaktion zurückzurollen. Commit: Wenn es keinen Fehler gibt, verpflichtet der Exec -Befehl die Transaktion und alle Befehle werden atomisch auf die Datenbank angewendet. Rollback: Wenn ein Fehler vorliegt, rollt der Befehl entserät die Transaktion, alle Befehle werden verworfen und der Datenbankstatus bleibt unverändert.
Redis Cluster ist ein verteiltes Bereitstellungsmodell, das die horizontale Expansion von Redis-Instanzen ermöglicht und durch Kommunikation zwischen Noten, Hash-Slot-Abteilung Schlüsselraum, Knotenwahlen, Master-Slave-Replikation und Befehlsumleitung implementiert wird: Inter-Node-Kommunikation: Virtuelle Netzwerkkommunikation wird durch Cluster-Bus realisiert. Hash -Slot: Teilen Sie den Schlüsselraum in Hash -Slots, um den für den Schlüssel verantwortlichen Knoten zu bestimmen. Knotenwahlen: Es sind mindestens drei Master -Knoten erforderlich, und nur ein aktiver Masterknoten wird durch den Wahlmechanismus sichergestellt. Master-Slave-Replikation: Der Masterknoten ist für das Schreiben von Anforderungen verantwortlich und der Slaveknoten ist für das Lesen von Anforderungen und Datenreplikation verantwortlich. Befehlsumleitung: Der Client stellt eine Verbindung zum für den Schlüssel verantwortlichen Knoten her, und der Knoten leitet falsche Anforderungen weiter. Fehlerbehebung: Fehlererkennung, Off-Linie markieren und neu