Heim  >  Artikel  >  Backend-Entwicklung  >  Redis-Tutorial (9): Beispiel für eine Master-Slave-Replikationskonfiguration

Redis-Tutorial (9): Beispiel für eine Master-Slave-Replikationskonfiguration

黄舟
黄舟Original
2016-12-28 15:02:051031Durchsuche

1. Replikation von Redis:

Das erste, was hier erklärt werden muss, ist, dass die Konfiguration des Master-Slave-Modus in Redis wirklich einfach ist. Ich glaube, dass Sie es leicht tun können, nachdem Sie diesen Blog gelesen haben. Hier werden wir zunächst einige theoretische Kenntnisse auflisten und dann praktische Fälle nennen.

Die folgende Liste erläutert anschaulich die Funktionen und Vorteile der Redis-Replikation.

1). Derselbe Master kann mehrere Slaves synchronisieren.
2) Der Slave kann auch Verbindungs- und Synchronisationsanfragen von anderen Slaves annehmen, wodurch der Synchronisationsdruck des Masters effektiv entlastet werden kann. Daher können wir uns die Replikationsarchitektur von Redis als eine Diagrammstruktur vorstellen.
3) Der Master-Server stellt den Slaves Dienste auf nicht blockierende Weise zur Verfügung. Während der Master-Slave-Synchronisation kann der Client also weiterhin Abfragen oder Änderungswünsche stellen.
4) Der Slave-Server führt auch die Datensynchronisierung auf nicht blockierende Weise durch. Wenn ein Client während der Synchronisierung eine Abfrageanforderung sendet, gibt Redis die Daten vor der Synchronisierung zurück.
5) Um den Lesevorgangsdruck des Masters zu entlasten, kann der Slave-Server dem Client schreibgeschützte Betriebsdienste bereitstellen, und der Schreibdienst muss weiterhin vom Master abgeschlossen werden. Dennoch wurde die Skalierbarkeit des Systems erheblich verbessert.
6) Der Master kann den Datenspeicherungsvorgang an die Slaves übergeben, sodass kein unabhängiger Prozess im Master erforderlich ist, um diesen Vorgang abzuschließen.

2. So funktioniert die Replikation:

Nachdem der Slave gestartet ist und eine Verbindung zum Master hergestellt hat, sendet er aktiv einen SYNC-Befehl. Danach startet der Master den Hintergrundspeichervorgang und sammelt alle empfangenen Befehle zum Ändern des Datensatzes. Nach Abschluss des Hintergrundvorgangs überträgt der Master die gesamte Datenbankdatei an den Slave, um eine vollständige Synchronisierung durchzuführen. Nach dem Empfang der Datenbankdateidaten speichert der Slave-Server diese und lädt sie in den Speicher. Danach überträgt der Master weiterhin alle gesammelten Änderungsbefehle und neue Änderungsbefehle nacheinander an die Slaves. Der Slave führt diese Datenänderungsbefehle dieses Mal aus, um eine endgültige Datensynchronisierung zu erreichen.
Wenn die Verbindung zwischen Master und Slave getrennt wird, kann sich der Slave automatisch wieder mit dem Master verbinden. Nach erfolgreicher Verbindung wird jedoch automatisch eine vollständige Synchronisierung durchgeführt.

3. So konfigurieren Sie die Replikation:

Sehen Sie sich die folgenden Schritte an:
1). Sie können zwei Redis-Server gleichzeitig starten und überwachen Sie sie separat. Verschiedene Ports wie 6379 und 6380.
2) Führen Sie den Befehl auf dem Slave-Server aus:

  /> redis-cli -p 6380   #这里我们假设Slave的端口号是6380
    redis 127.0.0.1:6380> slaveof 127.0.0.1 6379 #我们假设Master和Slave在同一台主机,Master的端口为6379
    OK

Die obige Methode stellt nur sicher, dass redis_6380 nach der Ausführung des Befehls „slaveof“ zum Slave von redis_6379 wird, sobald der Dienst (redis_6380) neu gestartet wird , wird die Replikationsbeziehung zwischen ihnen beendet.
Wenn Sie die Replikationsbeziehung zwischen den beiden Servern für längere Zeit sicherstellen möchten, können Sie die folgenden Änderungen in der Konfigurationsdatei von redis_6380 vornehmen:

    /> cd /etc/redis  #切换Redis服务器配置文件所在的目录。
    /> ls
    6379.conf  6380.conf
    /> vi 6380.conf
    将
    # slaveof <masterip> <masterport>
    改为
    slaveof 127.0.0.1 6379

Speichern und beenden.
Dadurch wird sichergestellt, dass das Redis_6380-Dienstprogramm nach jedem Start aktiv eine Replikationsverbindung mit Redis_6379 aufbaut.

4. Anwendungsbeispiele:


Hier gehen wir davon aus, dass der Master-Slave etabliert ist.

  #启动master服务器。
    [root@Stephen-PC redis]# redis-cli -p 6379
    redis 127.0.0.1:6379>
    #情况Master当前数据库中的所有Keys。
    redis 127.0.0.1:6379> flushdb
    OK
    #在Master中创建新的Keys作为测试数据。
    redis 127.0.0.1:6379> set mykey hello
    OK
    redis 127.0.0.1:6379> set mykey2 world
    OK
    #查看Master中存在哪些Keys。
    redis 127.0.0.1:6379> keys *
    1) "mykey"
    2) "mykey2"
    
    #启动slave服务器。
    [root@Stephen-PC redis]# redis-cli -p 6380
    #查看Slave中的Keys是否和Master中一致,从结果看,他们是相等的。
    redis 127.0.0.1:6380> keys *
    1) "mykey"
    2) "mykey2"
    
    #在Master中删除其中一个测试Key,并查看删除后的结果。
    redis 127.0.0.1:6379> del mykey2
    (integer) 1
    redis 127.0.0.1:6379> keys *
    1) "mykey"
    
    #在Slave中查看是否mykey2也已经在Slave中被删除。
    redis 127.0.0.1:6380> keys *
    1) "mykey"

Das Obige ist der Inhalt des Redis-Tutorials (9): Beispiel für eine Master-Slave-Kopierkonfiguration. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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