Was ist der Unterschied zwischen Redis-Cluster und Sentry?
Die Funktion des Sentinel besteht darin, den Betriebsstatus des Redis-Systems zu überwachen. Zu seinen Funktionen gehören die folgenden zwei. (Empfohlenes Lernen: Redis-Video-Tutorial)
Überwachen Sie, ob die Master-Datenbank und die Slave-Datenbank normal laufen.
Wenn die Hauptdatenbank ausfällt, wird sie automatisch von der Slave-Datenbank in die Hauptdatenbank konvertiert.
Sobald Sentinel feststellt, dass der Master ausgefallen ist, wählt er erneut einen Master aus dem Slave.
Sentinel-Modus legt Wert auf hohe Verfügbarkeit
Das Sentinel-System wird zur Verwaltung mehrerer Redis-Server (Instanzen) verwendet. Das System führt die folgenden drei Aufgaben aus:
Überwachung) : Sentinel prüft ständig, ob Ihr Master-Server und Slave-Server ordnungsgemäß funktionieren.
Benachrichtigung: Wenn ein Problem mit einem überwachten Redis-Server auftritt, kann Sentinel über die API Benachrichtigungen an den Administrator oder andere Anwendungen senden.
Automatisches Failover: Wenn ein Master-Server nicht ordnungsgemäß funktionieren kann, startet Sentinel einen automatischen Failover-Vorgang. Dabei wird einer der Slave-Server des ausgefallenen Master-Servers auf den neuen Master-Server aktualisiert Der ausgefallene Master-Server ändert sich, um den neuen Master-Server zu replizieren. Wenn der Client versucht, eine Verbindung zum ausgefallenen Master-Server herzustellen, gibt der Cluster auch die Adresse des neuen Master-Servers an den Client zurück, sodass der Cluster den neuen Master-Server verwenden kann um den ausgefallenen Master-Server zu ersetzen.
Der Client zeichnet nicht die Adresse von Redis (eine bestimmte IP) auf, sondern die Adresse von Sentinel, sodass wir die Redis-Adresse direkt von Sentinel erhalten können, da Sentinel alle Master und Slaves überwacht Wenn wir beispielsweise zu diesem Zeitpunkt ein Failover durchführen, hat sich der Master für Sentinel geändert und benachrichtigt dann den Client. Der Kunde muss sich überhaupt nicht darum kümmern, wer der wahre Meister ist, er kümmert sich nur um den von Sentinel informierten Meister.
Cluster
Selbst wenn Sentinel verwendet wird, wird jede Redis-Instanz vollständig gespeichert, und der in jedem Redis gespeicherte Inhalt besteht aus vollständigen Daten, was eine Verschwendung darstellt des Gedächtnisses und hat einen Barrel-Effekt. Um die Speichernutzung zu maximieren, können Cluster verwendet werden, bei denen es sich um verteilten Speicher handelt. Das heißt, jedes Redis speichert unterschiedliche Inhalte mit insgesamt 16384 Slots. Jedem Redis werden einige Slots zugewiesen, hash_slot = crc16(key) mod 16384, um den entsprechenden Slot zu finden, der Schlüssel ist ein verfügbarer Schlüssel, wenn es {} gibt, nimm den in {} als verfügbaren Schlüssel, andernfalls den Der gesamte Schlüssel ist ein verfügbarer Schlüssel
Der Cluster erfordert mindestens 3 Master und 3 Slaves, und jede Instanz verwendet eine andere Konfigurationsdatei. Es besteht keine Notwendigkeit, den Master und die Slaves zu konfigurieren, der Cluster wählt sich selbst aus.
Cluster soll das Problem der begrenzten Kapazität von Redis auf einer Maschine lösen und Daten nach bestimmten Regeln auf mehrere Maschinen verteilen.
Der Clustermodus erhöht die Parallelität.
Weitere technische Artikel zum Thema Redis finden Sie in der Spalte Einführung in das Redis-Datenbanknutzungs-Tutorial, um mehr zu erfahren!
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Redis-Cluster und Sentinel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!