1. Manuelle Konstruktion ) Konfigurationsdateien vorbereiten
cluster ├── 9001 │ ├── data │ │ ├── appendonly.aof │ │ └── nodes-9001.conf │ ├── redis-9001.conf │ └── redis-9001.log ├── 9002 │ ├── data │ │ ├── appendonly.aof │ │ └── nodes-9002.conf │ ├── redis-9002.conf │ └── redis-9002.log ...
:%s/9001/9002/g
(3) Starten Sie den Dienstcd cluster mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data cp ../redis-6.0.9/redis.conf 9001/redis-9001.conf vi 9001/redis-9001.conf port 9001 daemonize yes bind 192.168.11.40 dir /root/cluster/9001/data/ pidfile /var/run/redis_9001.pid cluster-enabled yes # 集群模式运行 cluster-config-file nodes-9001.conf cluster-node-timeout 15000 # appendonly yes logfile "/root/cluster/9001/redis-9001.log"
Cluster-Konfigurationsdatei erstellt Knoten im Datenverzeichnis -9001.conf
. Wenn sich die Knoteninformationen im Cluster ändern, speichert der Knoten den Clusterstatus automatisch in dieser Konfigurationsdatei. Es ist am besten, ihn nicht manuell zu ändern. Wenn beim Start eine Cluster-Konfigurationsdatei vorhanden ist, verwendet der Knoten den Inhalt der Konfigurationsdatei, um die Cluster-Informationen zu initialisieren.
/usr/local/redis/bin/redis-server /root/cluster/9001/redis-9001.conf ... tail 9001/redis-9001.log kill `cat /var/run/redis_9001.pid`
$ cat 9001/data/nodes-9001.conf 8ccdb0963411ebd05ce21952bdd4b7597825afdc :0@0 myself,master - 0 0 0 connected vars currentEpoch 0 lastVoteEpoch 0 $ /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 192.168.11.40:9001> cluster nodes 8ccdb0963411ebd05ce21952bdd4b7597825afdc :9001@19001 myself,master - 0 0 0 connected
Asynchroner:%s/9001/9002/g
$ /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 192.168.11.40:9001> cluster meet 192.168.11.40 9002 OK 192.168.11.40:9001> cluster nodes 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 0 0 connected 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620703357871 1 connected
启动后会自动在 data 目录创建集群配置文件nodes-9001.conf
Befehl. Die Funktion besteht darin, dass Knoten Statusdateninformationen untereinander austauschen, unmittelbar nach der Ausführung zurückkehren und intern eine Handshake-Kommunikation mit dem Zielknoten durchführen:
Knoten 9001 erstellt den 9002-Knoten Informationsobjekt lokal und sendet die Meet-Nachricht
Knoten 9002 Speichern Sie nach dem Empfang der Meet-Nachricht die 9001-Knoteninformationen und antworten Sie auf die Pong-Nachricht
Danach kommunizieren die Knoten 9001 und 9002 regelmäßig über Ping/ Pong-Nachrichten
Im Cluster
jederNachdem der Knoten den Handshake hergestellt hat, kann der Cluster nicht normal arbeiten. Zu diesem Zeitpunkt befindet sich der Cluster im
Offline-Zustand und das Lesen und Schreiben aller Daten war verboten. Da die Slots nicht den Knoten zugewiesen sind, kann der Cluster die Zuordnung der Slots zu den Knoten nicht abschließen. Erst wenn alle SlotsSlots zuweisen:
192.168.11.40:9001> set hello world (error) CLUSTERDOWN Hash slot not served 192.168.11.40:9001> cluster info cluster_state:fail cluster_slots_assigned:0 cluster_slots_ok:0 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:0 ...
/usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 cluster addslots {0..5461} /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9002 cluster addslots {5462..10922} /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9003 cluster addslots {10923..16383}
Jeder Knoten, der für die Verarbeitung von Slots verantwortlich ist, sollte einen Slave-Knoten haben, um sicherzustellen, dass er wiederhergestellt werden kann, wenn Es schlägt fehl. Automatisches Failover. Der zum ersten Mal gestartete Knoten und der dem Slot zugewiesene Knoten sind beide Master-Knoten. Der Slave-Knoten ist für das Kopieren der Master-Knoten-Slot-Informationen und der zugehörigen Daten verantwortlich. 2. Verwenden Sie redis-trib.rb um einen Cluster zu erstellen (veraltet)
【Verwenden Sie redis-cli, um einen Cluster nach Redis5.0 zu erstellen】redis-trib.rb ist ein in Ruby implementiertes Redis-Clusterverwaltungstool. Clusterbezogene Befehle werden intern verwendet, um allgemeine Betriebs- und Wartungsvorgänge wie Clustererstellung, Inspektion, Slot-Migration und Balancing zu vereinfachen.
192.168.11.40:9001> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 ... 192.168.11.40:9001> cluster nodes cebb7ed63d469748d4015ede6b4a0f5ff59c9322 192.168.11.40:9006@19006 master - 0 1620704406746 0 connected 1b7785f80c4712c6ba4abd71cc93027fa85a02f8 192.168.11.40:9005@19005 master - 0 1620704406000 4 connected 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620704404000 2 connected 0-5461 9408059de8b2dd712f0a9381a3b7aad561aef206 192.168.11.40:9004@19004 master - 0 1620704407753 5 connected 85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620704407000 3 connected 10923-16383 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620704408763 1 connected 5462-10922
192.168.11.40:9004> cluster replicate 8ccdb0963411ebd05ce21952bdd4b7597825afdc OK 192.168.11.40:9005> cluster replicate 5786e3237c7fa413ed22465d15be721f95e72cfa OK 192.168.11.40:9006> cluster replicate 85ceb9826e8aa003169c46fb4ba115c72002d4f9 OK
192.168.11.40:9001> cluster nodes cebb7ed63d469748d4015ede6b4a0f5ff59c9322 192.168.11.40:9006@19006 slave 85ceb9826e8aa003169c46fb4ba115c72002d4f9 0 1620704825926 3 connected 1b7785f80c4712c6ba4abd71cc93027fa85a02f8 192.168.11.40:9005@19005 slave 5786e3237c7fa413ed22465d15be721f95e72cfa 0 1620704825000 1 connected 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620704824000 2 connected 0-5461 9408059de8b2dd712f0a9381a3b7aad561aef206 192.168.11.40:9004@19004 slave 8ccdb0963411ebd05ce21952bdd4b7597825afdc 0 1620704824921 2 connected 85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620704824000 3 connected 10923-16383 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620704823914 1 connected 5462-10922
wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz tar -zxvf ruby-2.7.3.tar.gz cd ruby-2.7.3 ./configure --prefix=/usr/local/ruby make make install cd /usr/local/ruby cp bin/ruby /usr/local/bin cp bin/gem /usr/local/bin
Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen Redis-Cluster in CentOS7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!