Welche drei Möglichkeiten gibt es für Redis-Clustering?
Redis verfügt über drei Clustering-Methoden: Master-Slave-Replikation, Sentinel-Modus und Cluster-Cluster.
Master-Slave-Replikation
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
Sentinel-Modus
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
Sie können auch redis-server zum Starten verwenden
redis-server sentinel.conf --sentinelyy
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:
Konfiguration
a Sentinel. Die conf-Datei erfordert mindestens eine Konfiguration:
sentinel monitor mymaster 127.0.0.1 6379 2
Ü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 REWRITE
Cluster-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
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
--cluster-replicas 1 这个指的是从机的数量,表示我们希望为集群中的每个主节点创建一个从节点。
进入集群模式只需要使用redis-cli -c命令
redis-cli -c -p 7000
无中心话节点,所以进入任意一个端口号的主节点即可。
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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).

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: 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.

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.

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.

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.

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.
