Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Wie kann man Hash-Slots eines bestimmten Knotens im Redis-Cluster im Falle eines harten Ausfalls wieder aufnehmen?

Es repariert den Cluster, indem es alle Steckplätze, die von dem ausgefallenen Knoten bedient wurden, zu einigen verbindbaren Knoten hinzufügt. Der Ansatz besteht darin, die cluster addslots zu verwenden Befehl, aber natürlich ist es irgendwie schwierig, es manuell zu tun, also schlage ich dieses von unserem Team entwickelte Tool vor.

Verwendung (in der Shell):

# it requires Python2.7; install it via pip
pip install redis-trib

# suppose one of the accessible nodes is serving at 172.0.0.1:7000
# start a cluster-mode Redis that is not involved in any cluster
# suppose its address is 172.0.0.5:8000
redis-trib.py rescue --existing-addr 172.0.0.1:7000 --new-addr 172.0.0.5:8000

Danach würde der neue Knoten alle ausgefallenen Slots bedienen, sodass der Cluster-Status in Ordnung wird.