Dieser Artikel führt Sie durch die Master-Slave-Replikation, Sentinels und Cluster in Redis. Ich hoffe, er ist hilfreich für Sie!
Standardmäßig ist jeder Redis-Server ein Master-Knoten. Ein Master-Knoten kann mehrere Slave-Knoten haben, ein Slave-Knoten kann jedoch nur einen Master-Knoten haben. [Verwandte Empfehlungen: Redis-Video-Tutorial]
2. Die Rolle der Master-Slave-Replikation
: Zusätzlich zu den oben genannten Funktionen ist die Master-Slave-Replikation auch die Grundlage für die Implementierung von Sentinels und Cluster, daher heißt es, dass die Master-Slave-Replikation die Grundlage für die Hochverfügbarkeit von Redis ist.3. Master-Slave-Replikationsprozess
数据冗余
:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
● 故障恢复
:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
● 负载均衡
:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;有其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
● 高可用基石
(1) Wenn ein Slave-Maschinenprozess gestartet wird, sendet er einen „Sync-Befehl“-Befehl an die Master-Maschine, um eine synchrone Verbindung anzufordern. (2) Unabhängig davon, ob es sich um die erste Verbindung oder die erneute Verbindung handelt, startet der Master-Computer einen Hintergrundprozess und speichert den Daten-Snapshot in der Datendatei (führt einen RDB-Vorgang aus). Gleichzeitig zeichnet der Master auch alle Befehle auf, die sich ändern die Daten und speichern sie in der Datendatei in der Datei. (3) Nachdem der Hintergrundprozess den Caching-Vorgang abgeschlossen hat, sendet der Master-Computer die Datendatei an den Slave-Computer. Der Slave-Computer speichert die Datendatei auf der Festplatte und lädt sie dann in den Speicher ändert die Daten. Alle Vorgänge werden gemeinsam an die Slave-Maschine gesendet. Wenn der Slave ausfällt und eine Ausfallzeit verursacht, wird die Verbindung automatisch wiederhergestellt, sobald der Normalzustand wiederhergestellt ist. (4) Nachdem der Master-Computer die Verbindung vom Slave-Computer erhalten hat, sendet er seine vollständige Datendatei an den Slave-Computer. Wenn der Master mehrere Synchronisierungsanfragen gleichzeitig vom Slave erhält, startet der Master einen Prozess im Speichern Sie im Hintergrund die Datendatei und senden Sie sie dann an alle Slave-Maschinen, um sicherzustellen, dass alle Slave-Maschinen normal sind. 4. Einrichten der Redis-Master-Slave-Replikation
Master-Knoten192.168 .122.10
Slave1192.168.122.11
Slave2 Knoten
Slave2防4.2 Jede Server-Firewall-Umgebung Redis-Installation für Details. Nosqls Redis-Detaillierte Erklärung传入安装包到/opt目录 yum install -y gcc gcc-c++ make tar zxvf redis-5.0.7.tar.gz -C /opt/ cd /opt/redis-5.0.7/ make make PREFIX=/usr/local/redis install cd /opt/redis-5.0.7/utils ./install_server.sh ...... Please select the redis executable path [] #输入/uar/local/redis/bin/redis-server ln -s /usr/local/redis/bin/* /usr/local/bin/ 4.4 Ändern Sie die Redis-Konfigurationsdatei (Master-Knoten-Betrieb) Master: 192.168.122.10 [root@master ~]# vim /etc/redis/6379.conf ##70行,修改监听地址为0.0.0.0,表示监听任何地址 bind 0.0.0.0 ##137行,开启守护进程 daemonize yes ##172行,指定日志文件目录 logfile /var/log/redis_6379.log ##264行,指定工作日志 dir /var/lib/redis/6379 ##700行,开启AOF持久化功能 appendonly yes4.5 Redis-Konfigurationsdatei ändern (Slave-Knotenbetrieb) Slave1: 192.168.122.11 [root@slave1 utils]# vim /etc/redis/6379.conf ##70行,修改监听地址为0.0.0.0,表示监听任何地址 bind 0.0.0.0 ##137行,开启守护进程 daemonize yes ##172行,指定日志文件目录 logfile /var/log/redis_6379.log ##264行,指定工作日志 dir /var/lib/redis/6379 ##288行,添加要同步的Master节点IP和端口 replicaof 192.168.122.10 6379 ##700行,开启AOF持久化功能 appendonly yes [root@slave1 utils]# /etc/init.d/redis_6379 restart Stopping ... Redis stopped Starting Redis server... Slave2: 192.168.122.1 2 [root@slave2 utils]# vim /etc/redis/6379.conf ##70行,修改监听地址为0.0.0.0,表示监听任何地址 bind 0.0.0.0 ##137行,开启守护进程 daemonize yes ##172行,指定日志文件目录 logfile /var/log/redis_6379.log ##264行,指定工作日志 dir /var/lib/redis/6379 ##288行,添加要同步的Master节点IP和端口 replicaof 192.168.122.10 6379 ##700行,开启AOF持久化功能 appendonly yes [root@slave2 utils]# /etc/init.d/redis_6379 restart Stopping ... Redis stopped Starting Redis server... 4.6 Überprüfen Sie den Master-Slave-Effekt 4.6. 1 Lesen Sie das Protokoll auf dem Master-Knoten. 4.6.2 Überprüfen Sie den Slave-Knoten auf dem Master-Knoten. 2. Redis Sentinel-Modus. 1. Die Kernfunktion des Sentinel-Modus Basierend auf der Master-Slave-Replikation führt Sentinel ein automatisches Failover des Masterknotens ein. 2. Prinzip des Sentinel-ModusSentinel ist ein verteiltes System, das zur Überwachung jedes Servers in der Master-Slave-Struktur verwendet wird. Wenn ein Fehler auftritt, wird über einen Abstimmungsmechanismus ein neuer Master ausgewählt und alle Slaves werden verbunden an den neuen Meister. Daher darf die Anzahl der Knoten im gesamten Cluster, auf dem Sentinel ausgeführt wird, nicht weniger als 3 Knoten betragen. 3. Die Rolle des Sentinel-Modus● Die Sentinel-Struktur besteht aus zwei Teilen, dem Sentinel-Knoten und dem Datenknoten: ● Sentinel-Knoten: Das Sentinel-System besteht aus einem oder mehreren Knoten Es werden keine Daten gespeichert. ● Datenknoten: Master-Knoten und Slave-Knoten sind beide Datenknoten.
5. So funktioniert der Sentinel-Modus Der Start von Sentinel hängt vom Master-Slave-Modus ab, daher muss der Master-Slave-Modus vor dem Start des Sentinel-Modus installiert werden Im Sentinel-Modus wird überwacht, ob alle Redis-Knoten normal funktionieren. Wenn es ein Problem mit dem Master-Knoten gibt, stimmen andere Knoten ab, weil sie den Kontakt zum Master-Knoten verloren haben Es wird davon ausgegangen, dass tatsächlich ein Problem mit dem Master vorliegt, und dann wird der Sentinel-Raum benachrichtigt und dann einer der Slaves als neuer Master ausgewählt. 6. Failover-Mechanismus Der Sentinel-Knoten überwacht regelmäßig, ob der Master-Knoten ausgefallen ist. Jeder Sentinel-Knoten sendet zur Heartbeat-Erkennung alle 1 Sekunde einen Ping-Befehl an den Master-Knoten, den Slave-Knoten und andere Sentinel-Knoten. Wenn der Masterknoten nicht innerhalb einer bestimmten Zeitspanne antwortet oder mit einer Fehlermeldung antwortet, geht der Sentinel davon aus, dass der Masterknoten subjektiv offline ist (einseitig). Wenn mehr als die Hälfte der Sentinel-Knoten glauben, dass der Master-Knoten subjektiv offline ist, ist er objektiv offline. Wenn der Master-Knoten ausfällt, implementieren die Sentinel-Knoten den Wahlmechanismus durch den Raft-Algorithmus (Wahlalgorithmus), um gemeinsam einen Sentinel-Knoten als Leiter zu wählen, der für die Abwicklung des Failovers und die Benachrichtigung des Master-Knotens verantwortlich ist. Daher darf die Anzahl der Hosts im Sentinel-Cluster nicht weniger als drei Knoten betragen. Der führende Sentinel-Knoten führt einen Failover durch: ● Aktualisieren Sie einen Slave-Knoten auf einen neuen Master-Knoten und lassen Sie andere Slave-Knoten auf den neuen Master-Knoten verweisen. ● Wenn der ursprüngliche Master-Knoten wiederhergestellt wird wird zum Slave-Knoten und zeigt auf den neuen Master-Knoten.
Wählen Sie den Slave-Knoten mit der Konfiguration mit der höchsten Priorität in der Konfigurationsdatei aus (Replika-Priorität, der Standardwert ist 100). Wählen Sie den Slave-Knoten mit dem größten Kopierversatz, also der vollständigsten Kopie. 8. Redis-Sentry-Modus erstellen
|
---|
Das obige ist der detaillierte Inhalt vonLassen Sie uns über Master-Slave-Replikation, Sentinels und Cluster in Redis sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!