Inhaltsverzeichnis
Master-Slave-Replikation
Grundprinzip
Persistenzschalter
Konfiguration
Sentinel-Modus
Verwenden Sie redis-sentinel zum Starten
a Sentinel. Die conf-Datei erfordert mindestens eine Konfiguration:
Wenn ein Sentinel feststellt, dass der Hauptserver offline ist, wird dies als subjektiv offline bezeichnet. Nur mehrere Sentinels stellen fest, dass der Hauptdienst offline ist und kommunizieren miteinander Wenn Befehle übermittelt werden, um festzustellen, ob der Hauptserver offline ist, wird dies als objektiv offline bezeichnet. Erst wenn der Master-Server objektiv offline ist, wird der Anführer Sentinel gewählt. Nach der Wahl wird über einen neuen Master-Server abgestimmt, der zum Master-Server aufgerüstet werden soll. Und senden Sie den Befehl „Slaveof no one“ an den ausgewählten Slave-Server, um ihn zum Master-Server zu machen. Über die Veröffentlichungs- und Abonnementfunktion wird die neue Konfiguration zur Aktualisierung an andere Sentinels gesendet, und der Befehl „Slaveof“ wird an den Offline-Master-Server gesendet it Replizieren des neuen Master-Servers Wenn alle Slave-Server mit der Replikation des neuen Master-Servers begonnen haben, beendet der Leader Sentinel diese Fehlermigration.
键分布模型
配置cluster集群
启动集群
Heim Datenbank Redis Welche drei Möglichkeiten gibt es für Redis-Clustering?

Welche drei Möglichkeiten gibt es für Redis-Clustering?

May 26, 2023 pm 02:37 PM
redis

Redis verfügt über drei Clustering-Methoden: Master-Slave-Replikation, Sentinel-Modus und Cluster-Cluster.

Master-Slave-Replikation

Welche drei Möglichkeiten gibt es für Redis-Clustering?

Grundprinzip

Wenn ein neuer Slave-Server erstellt wird, Der Slave-Server sendet einen SYNC-Befehl an den Hauptserver. Nach dem Empfang des SYNC-Befehls führt der Hauptserver einen BGSAVE-Befehl aus Die generierte RDB-Datei wird an den Slave-Server gesendet. Der Slave-Server verwendet diese Datei, um Daten in den Speicher zu laden, und dann sendet der Master-Server den Pufferbefehl im Format des Redis-Befehlsprotokolls an den Slave-Server. Danach wird jedes Mal, wenn der Master-Dienst einen Befehl ausführt, dieser mit dem Slave-Server synchronisiert. Selbst wenn mehrere Slave-Server SYNC-Befehle an den Master-Server senden, führt der Master-Server nur einen BGSAVE-Befehl aus, um die nächste Synchronisierungsanforderung zu verarbeiten. Ein Master-Server kann mehrere Slave-Server haben, und Slave-Server können auch Slave-Server haben, wodurch eine graphische Struktur entsteht. Die Replikationsfunktion blockiert den Master-Server nicht. Selbst wenn eine oder mehrere Synchronisierungsanforderungen vorliegen, kann dies der Fall sein weiterhin Befehlsanfragen verarbeiten.

Persistenzschalter

Wenn der Master-Slave-Replikationsmodus konfiguriert ist, muss die Persistenzfunktion des Hauptservers aktiviert werden Wenn der Hauptserver ausgeschaltet ist, gehen alle Daten des Slave-Servers verloren. Selbst wenn der Sentinel-Modus konfiguriert ist, startet der Master-Server den Prozess automatisch schnell, sodass im Sentinel-Modus kein neuer Master-Server ausgewählt wurde Der Start des Master-Dienstes führt auch dazu, dass auf dem Subserver viele Daten verloren gehen.

Konfiguration

Um einen Master-Slave-Replikationsmodus zu konfigurieren, müssen Sie nur den Befehl Slaveof verwenden, ihn in der Konfigurationsdatei conf hinzufügen oder den Befehl in Redis ausführen.

SLAVEOF host port
Nach dem Login kopieren

Sentinel-Modus

Welche drei Möglichkeiten gibt es für Redis-Clustering?

Grundprinzip

Das Sentinel-System von Redis wird zur Verwaltung mehrerer verwendet Redis führt hauptsächlich die folgenden drei Dinge aus:

Überwachung: Sentinel überprüft kontinuierlich den Betriebsstatus der Master- und Slave-Server

Erinnerung: Wenn ein Redis-Server ausfällt, können Sie ihn verwenden Die API oder andere Anwendungen senden Benachrichtigungen. , verbinden sich die verbleibenden Slave-Server automatisch und kopieren die Daten des gewählten neuen Servers.

Das Sentinel-System von Redis ist ein verteiltes System, und ein oder mehrere Sentinels können im System konfiguriert werden.

Starten

Verwenden Sie redis-sentinel zum Starten

redis-sentinel sentinel.confy
Nach dem Login kopieren

Sie können auch redis-server zum Starten verwenden

redis-server sentinel.conf --sentinelyy
Nach dem Login kopieren

Die beiden oben genannten Sentinel können auf eine der folgenden Arten gestartet werden: Sie müssen eine Konfigurationsdatei angeben, um Sentinel zu starten, andernfalls kann es nicht gestartet werden:

Welche drei Möglichkeiten gibt es für Redis-Clustering? Konfiguration

a Sentinel. Die conf-Datei erfordert mindestens eine Konfiguration:

sentinel monitor mymaster 127.0.0.1 6379 2
Nach dem Login kopieren

Überwacht einen Host mit einem Alias ​​namens mymaster, die Adresse ist 127.0.0.1 und der Port ist 6379. Um diesen Master-Server als ungültig zu beurteilen, sind mindestens zwei Sentinel-Zustimmungen erforderlich.

Unabhängig davon, wie viele Sentinels eingerichtet sind, um den Ausfall eines Hauptservers zu ermitteln, sind mehrere Sentinels im System erforderlich, um die Fehlermigration zu unterstützen nicht durchführbar.

Fehlermigration

Wenn ein Sentinel feststellt, dass der Hauptserver offline ist, wird dies als subjektiv offline bezeichnet. Nur mehrere Sentinels stellen fest, dass der Hauptdienst offline ist und kommunizieren miteinander Wenn Befehle übermittelt werden, um festzustellen, ob der Hauptserver offline ist, wird dies als objektiv offline bezeichnet. Erst wenn der Master-Server objektiv offline ist, wird der Anführer Sentinel gewählt. Nach der Wahl wird über einen neuen Master-Server abgestimmt, der zum Master-Server aufgerüstet werden soll. Und senden Sie den Befehl „Slaveof no one“ an den ausgewählten Slave-Server, um ihn zum Master-Server zu machen. Über die Veröffentlichungs- und Abonnementfunktion wird die neue Konfiguration zur Aktualisierung an andere Sentinels gesendet, und der Befehl „Slaveof“ wird an den Offline-Master-Server gesendet it Replizieren des neuen Master-Servers Wenn alle Slave-Server mit der Replikation des neuen Master-Servers begonnen haben, beendet der Leader Sentinel diese Fehlermigration.

Wenn eine Redis-Instanz neu konfiguriert wird, unabhängig davon, ob sie als Master-Server, Slave-Server oder Slave-Server eines anderen Master-Servers festgelegt ist, wird Sentinel neu konfiguriert. Die Instanz sendet ein # 🎜🎜#-Befehl, um sicherzustellen, dass diese Konfigurationen auf der Festplatte gespeichert bleiben.

CONFIG REWRITECluster-Cluster

之前的主从复制,哨兵模式都难以再现扩容,而Redis cluster集群实现了对Redis的水平扩容,即启动N个Redis节点,每个节点又可以有自己的从服务器,将数据均匀分布的存储在这N个结点上,每个节点存储数据的1/N。Redis cluster集群就是一个可以在多个Redis节点之间进行数据共享的设施;Redis cluster集群采用的是无中心化配置,即节点A无法处理,会将请求转发只节点B进行处理。

键分布模型

Redis集群中的键空间被分割为16384个槽位。Redis采用CRC16算法对16384个槽位进行分配,每个主节点负责其中一部分。为了保证高可用,cluster模式也引入了主从复制模式,一个主节点对应一个或多个从节点,当主节点发生宕机时,可进行故障转移,将子节点升级为主节点。

配置cluster集群

Redis 集群由多个运行在集群模式(cluster mode)下的 Redis 实例组成, 实例的集群模式需要通过配置来开启,以下是一个包含了最少选项的集群配置文件示例:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
Nach dem Login kopieren

cluster-enabled:打开集群模式
cluster-config-file:节点配置文件名,无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新
cluster-node-timeout:节点失联时间,当超过此毫秒,集群将自动切换主从节点。

要让集群正常运作至少需要三个主节点,而每个主节点都应该正确配置一个或者多个从节点。

启动集群

使用redis-cli --cluster create命令将节点合并成一个集群

redis-cli --cluster create --cluster-replicas 1  127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
Nach dem Login kopieren

 --cluster-replicas 1 这个指的是从机的数量,表示我们希望为集群中的每个主节点创建一个从节点。

进入集群模式只需要使用redis-cli -c命令

redis-cli -c -p 7000
Nach dem Login kopieren

无中心话节点,所以进入任意一个端口号的主节点即可。

Das obige ist der detaillierte Inhalt vonWelche drei Möglichkeiten gibt es für Redis-Clustering?. 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

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

So verwenden Sie den Befehl Redis So verwenden Sie den Befehl Redis Apr 10, 2025 pm 08:45 PM

Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

So lesen Sie den Quellcode von Redis So lesen Sie den Quellcode von Redis Apr 10, 2025 pm 08:27 PM

Der beste Weg, um Redis -Quellcode zu verstehen, besteht darin, Schritt für Schritt zu gehen: Machen Sie sich mit den Grundlagen von Redis vertraut. Wählen Sie ein bestimmtes Modul oder eine bestimmte Funktion als Ausgangspunkt. Beginnen Sie mit dem Einstiegspunkt des Moduls oder der Funktion und sehen Sie sich die Codezeile nach Zeile an. Zeigen Sie den Code über die Funktionsaufrufkette an. Kennen Sie die von Redis verwendeten Datenstrukturen. Identifizieren Sie den von Redis verwendeten Algorithmus.

So löschen Sie Redis -Daten So löschen Sie Redis -Daten Apr 10, 2025 pm 10:06 PM

So löschen Sie Redis -Daten: Verwenden Sie den Befehl Flushall, um alle Schlüsselwerte zu löschen. Verwenden Sie den Befehl flushdb, um den Schlüsselwert der aktuell ausgewählten Datenbank zu löschen. Verwenden Sie SELECT, um Datenbanken zu wechseln, und löschen Sie dann FlushDB, um mehrere Datenbanken zu löschen. Verwenden Sie den Befehl del, um einen bestimmten Schlüssel zu löschen. Verwenden Sie das Redis-Cli-Tool, um die Daten zu löschen.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

So sehen Sie alle Schlüssel in Redis So sehen Sie alle Schlüssel in Redis Apr 10, 2025 pm 07:15 PM

Um alle Schlüssel in Redis anzuzeigen, gibt es drei Möglichkeiten: Verwenden Sie den Befehl keys, um alle Schlüssel zurückzugeben, die dem angegebenen Muster übereinstimmen. Verwenden Sie den Befehl scan, um über die Schlüssel zu iterieren und eine Reihe von Schlüssel zurückzugeben. Verwenden Sie den Befehl Info, um die Gesamtzahl der Schlüssel zu erhalten.

So lesen Sie Redis -Warteschlange So lesen Sie Redis -Warteschlange Apr 10, 2025 pm 10:12 PM

Um eine Warteschlange aus Redis zu lesen, müssen Sie den Warteschlangenname erhalten, die Elemente mit dem Befehl LPOP lesen und die leere Warteschlange verarbeiten. Die spezifischen Schritte sind wie folgt: Holen Sie sich den Warteschlangenname: Nennen Sie ihn mit dem Präfix von "Warteschlange:" wie "Warteschlangen: My-Queue". Verwenden Sie den Befehl LPOP: Wischen Sie das Element aus dem Kopf der Warteschlange aus und geben Sie seinen Wert zurück, z. B. die LPOP-Warteschlange: my-queue. Verarbeitung leerer Warteschlangen: Wenn die Warteschlange leer ist, gibt LPOP NIL zurück, und Sie können überprüfen, ob die Warteschlange existiert, bevor Sie das Element lesen.

So starten Sie den Server mit Redis So starten Sie den Server mit Redis Apr 10, 2025 pm 08:12 PM

Zu den Schritten zum Starten eines Redis -Servers gehören: Installieren von Redis gemäß dem Betriebssystem. Starten Sie den Redis-Dienst über Redis-Server (Linux/macOS) oder redis-server.exe (Windows). Verwenden Sie den Befehl redis-cli ping (linux/macOS) oder redis-cli.exe ping (Windows), um den Dienststatus zu überprüfen. Verwenden Sie einen Redis-Client wie Redis-Cli, Python oder Node.js, um auf den Server zuzugreifen.

See all articles