So konfigurieren Sie den Redis-Sentinel-Modus in Docker (auf mehreren Servern)

So konfigurieren Sie den Redis-Sentinel-Modus in Docker (auf mehreren Servern)

Vorwort

Das Redis, das ich zuvor gelernt habe, lief immer auf einem einzelnen Server und wurde direkt auf dem Server bereitgestellt. Ich habe gehört, dass die Verwendung von Docker den Konfigurationsprozess vereinfacht (stimmt nicht). Dieses Mal habe ich Redis mit einem Master, einem Slave und drei Sentinels basierend auf Docker konfiguriert. In diesem Artikel geht es um die Konfiguration von Datenknoten, also zwei Knoten, einem Master und einem Slave.

Zustand

Drei Server (da zur Gewährleistung der Sicherheit mindestens drei Sentinels erforderlich sind) [können für einige Stunden in der Alibaba Cloud gemietet werden]

  • Server 1: 8.131.78.18
  • Server 2: 8.131.69.106
  • Server 3: 8.131.71.196
  • Die Portnummern 7000 und 17000 wurden in der Sicherheitsgruppe (Alibaba Cloud) freigegeben.
  • Umgebung: centos8.0

Docker installieren

Führen Sie die folgenden Anweisungen zeilenweise aus:

# 1. Aktualisieren Sie die Kompilierungsumgebung yum -y install gcc

# 2. Wie oben yum -y install gcc-c++

# 3. Docker installieren
# 3.1 Deinstallieren Sie die alte Version yum remove docker \
   Docker-Client \
   docker-client-neueste \
   docker-allgemein \
   docker-neueste \
   docker-latest-logrotate \
   docker-logrotate \
   Docker-Engine
# 3.2 Installieren Sie das erforderliche Installationspaket yum install -y yum-utils
# 3.3 Richten Sie das Mirror-Warehouse ein. Es wird empfohlen, inländische Mirrors zu verwenden, da diese schneller sind. yum-config-manager \
 --add-repo \
 https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3.4 Aktualisieren Sie den Yum-Paketindex. Die Funktion besteht darin, das Paket lokal zwischenzuspeichern. yum makecache 
# 3.5 Installieren Sie die Community-Version von docker-ce im Zusammenhang mit docker yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
# 3.6 Installieren Sie yum install docker-ce docker-ce-cli containerd.io
# 3.7 Docker starten
systemctl starte Docker
# 3.8 So konfigurieren Sie systemctl enable docker, dass es im Hintergrund gestartet wird 
# 3.9 Verwenden Sie die Docker-Version, um zu überprüfen, ob es erfolgreich ist
# 3.10 Test (optional)
Docker Run Hallo Welt
# 3.11 Deinstallieren und löschen (nur als Referenz, dieses Mal nicht durchgeführt)
yum entferne docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker

# 4. Konfigurieren Sie den Beschleuniger sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
 "Registrierungsspiegel": ["https://qdxc3615.mirror.aliyuncs.com"]
}
Ende der Laufzeit
sudo systemctl daemon-reload
sudo systemctl Neustart Docker

Konfigurieren Sie Redis-Master- und -Slaveknoten

Die von uns verwendeten Server sind Server 1 und Server 3 (ursprünglich gab es einen Master und zwei Slaves, aber ich habe Server 2 heruntergefahren).

TIPPS: Bei xshell können Sie mit der rechten Maustaste klicken und die Sendetaste auswählen, um sie in alle Sitzungen einzugeben. Sie müssen sie also nicht zweimal konfigurieren. Oder verwenden Sie die scp-Anweisung, um die konfigurierte Datei mit anderen Servern zu teilen:

# scp lokale_Datei Remote-Benutzername@Remote-IP:Remote-Ordner
scp redis.conf [email protected]:/blau/redis02

1. Erstellen Sie zunächst einen Ordner. Achten Sie darauf, ihn nicht im Home-Pfad abzulegen, da der Container sonst aufgrund von Berechtigungsproblemen möglicherweise nicht ausgeführt werden kann. Das von mir erstellte Verzeichnis ist /blue/redis02 und die Anweisungen sind relativ einfach:

CD /
mkdir blau && cd blau
mkdir redis02 und cd redis02

2. Erstellen Sie eine Docker-Datei, die zum Laden einiger benötigter Umgebungen verwendet wird.

vi Docker-Datei

# Der Inhalt der Docker-Datei ist wie folgt:
# Erben vom Basisimage redis FROM redis
WARTUNGSBEARBEITER blau<[email protected]>

# Kopieren Sie die Dateien im Verzeichnis, in dem sich Dockerfile befindet, in das Containerverzeichnis /usr/local/etc/redis. KOPIEREN Sie redis.conf /usr/local/etc/redis/redis.conf

# Installieren Sie einige Umgebungen. Führen Sie apt-get update aus.
Führen Sie apt-get install -y vim aus.
Führen Sie den Befehl apt-get install procps --assume-yes aus.

VOLUMEN ["/Daten"]

ARBEITSVERZEICHNIS /etc/redis

# Öffnen Sie Port 7000
EXPOSE 7000

# Starten Sie CMD mit der Konfigurationsdatei [ "redis-server", "/usr/local/etc/redis/redis.conf"]

3. Laden Sie eine redis.conf von der offiziellen Website herunter und nehmen Sie die folgenden Änderungen vor. redis.conf enthält einige Konfigurationen von Redis, die im Wesentlichen mit der Konfiguration eines Einzelmaschinen-Redis mit einem Master, einem Slave und drei Sentinels identisch sind.

# Bind 127.0.0.1 auskommentieren 
# binden 127.0.0.1

Hafen 7000

# Wenn ja hier, wird es die Verwendung von Konfigurationsdateien beeinflussen, um daemonize zu starten nein

pid-Datei /var/run/redis_7000.pid

# Sie müssen die folgenden beiden Passwörter festlegen und die Passwörter müssen konsistent sein requirepass testmaster123
masterauth testmaster123

# Ändern Sie den Schutzmodus. Wenn ja, sind externe Server nicht erreichbar. protected-mode no

# Für Server 3 müssen Sie einen Satz hinzufügen, der angibt, dass es sich um den Slave-Server von Server 1 handelt. # Slaveof Host.Maschine.IP-Port Slaveof 8.131.78.18 7000

4. Nachdem Sie die obige Konfiguration gespeichert haben, können Sie mit der folgenden Anweisung ein Image erstellen. Dieser Vorgang dauert lange, daher müssen Sie geduldig warten:

# Sie sollten docker build -t myredis verwenden. Das ist leichter zu erkennen, aber als ich es getestet habe, hat es funktioniert, deshalb möchte ich es nicht ändern. Dieser Satz erstellt ein neues Image basierend auf unserer Docker-Datei. Du kannst es ins Lager schieben, um es beim nächsten Mal direkt abzuholen.
Docker-Build -t-Test.

5. Starten Sie den Container mit der folgenden Anweisung:

# Starten Sie den Container docker run -d -p 7000:7000 --name redis-test test

# Die folgende Anweisung zeigt den laufenden Container Docker PS an

#Geben Sie den Container ein docker exec -it redis-test /bin/bash

6. Sie können die folgende Anweisung innerhalb des Containers verwenden, um die laufenden Threads anzuzeigen:

# Die laufenden Threads anzeigen ps -ef

# Verwenden Sie den Redis-Client, um auf Port 7000 zuzugreifen redis-cli -p 7000

# Geben Sie das Passwort auth testmaster123 ein

# Informationen zur Replikation anzeigen

# Nachfolgend sind die vom Knoten zurückgegebenen Informationen aufgeführt. # Replikation
Rolle: Sklave
master_host:8.131.78.18
Master-Port: 7000
master_link_status:aktiv
master_last_io_seconds_ago:10
Master-Synchronisierung läuft: 0
Slave_Repl_Offset: 28
Slave-Priorität: 100
Slave_schreibgeschützt: 1
verbundene_Slaves:0
master_replid:438c700922a30ebbc66ee5c89a176c426924b2a7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:28
zweiter_Repl_Offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:28

An diesem Punkt sind die Master- und Slave-Knoten erfolgreich konfiguriert.

Dies ist das Ende dieses Artikels über die Docker-Konfiguration im Redis-Sentinel-Modus (auf mehreren Servern). Weitere Informationen zur Docker-Konfiguration im Redis-Sentinel-Modus finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So erstellen Sie einen Redis-Cluster mit Docker
  • Implementierung eines Redis Master-Slave-Clusters basierend auf Docker
  • Erstellen eines Redis-Clusters auf Docker
  • So stellen Sie eigenständigen Pulsar und geclustertes Redis mit Docker bereit (Entwicklungsartefakt)
  • Verwenden Sie Docker, um einen Redis-Master-Slave-Replikationscluster zu erstellen
  • Beispiel für den schnellen Aufbau eines Redis-Clusters mit Docker
  • Implementierung der Clusterkonstruktion im Docker Redis5.0-Cluster
  • Implementierung von Redis mit einem Master, zwei Slaves und drei Sentinels basierend auf Docker
  • Bringen Sie Ihnen bei, wie Sie in 5 Minuten den Redis-Clustermodus und den Sentinelmodus mit Docker erstellen

<<:  Implementierung des Vue-Zählers

>>:  Eine kurze Diskussion darüber, welche Felder in Mysql für die Indizierung geeignet sind

Artikel empfehlen

Zusammenfassung der praktischen Methoden von CSS3 (empfohlen)

1. Abgerundeter Rand: CSS- CodeInhalt in die Zwis...

Ein tiefer Einblick in die MySQL InnoDB-Speicher-Engine

Vorwort InnoDB gehört in MySQL zur Speicher-Engin...

Schritte zum Reparieren einer Beschädigung der Datei grub.cfg im Linux-System

Inhaltsverzeichnis 1. Einführung in die grub.cfg-...

So konfigurieren Sie pseudostatisches und clientadaptives Nginx

Das Backend verwendet das Framework thinkphp3.2.3...

Lösen Sie das Problem des MySQL Threads_running-Surge und der langsamen Abfrage

Inhaltsverzeichnis Hintergrund Problembeschreibun...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.22

Dieser Artikel dokumentiert die Installation und ...

Detaillierte Erklärung der Verwendung von publicPath in Webpack

Inhaltsverzeichnis Ausgabe Ausgabepfad Ausgabe.öf...

Detaillierte Erläuterung gängiger MySQL-Befehle im Linux-Terminal

Aufschlag: # chkconfig --list Alle Systemdienste ...