1.問題の説明
[ERR] Node 192.168.43.175:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
2.問題分析
これは、redis
シャットダウン時のクラスターの異常シャットダウンによるもので、ダウンタイムとも呼ばれます。redis
サーバーに関連データを保存する時間がなかったため、情報が失われました。したがって、ローカルバックアップファイルを削除してサーバーを再起動する必要があります。
3.問題解決
データを削除したいので、ここでredis
プロセスを強制終了できます。まず、ps -ef | grep redis
コマンドredis
を使用してプロセスの基本情報を取得します。次に、プロセスを直接移動しますkill
。注:ここkill
にcluster
プロセスがあります。ps -ef | grep redis
コマンドを再度実行して、プロセスが強制終了されたことを確認します。この方法では、クラスター内の他のredis
サーバーが順番に停止されます。
次にredis
、サーバーのローカルファイルがあるディレクトリを入力します。作成者のディレクトリは/var/redis
です。サーバーディレクトリを入力することを選択しました。たとえば7001
、nodes.conf
他のファイルがあることがわかりました。これらのファイルをすべて削除する必要があります。を実行しrm -rf *
、フォルダをもう一度確認して、ファイルが削除されていることを確認します。この方法に従って、クラスター内のすべてのファイルを1つずつ削除します。
次に、サーバーを1つずつ起動します。実行してい./redis_7001 start
ます。外観/var/run/redis_7001.pid exists, process is already running or crashed
の問題。削除する必要があります。実行していrm -rf /var/run/redis_7001.pid
ます。サーバーを再起動します。サーバーは正常に起動できます。
最後に、クラスター開始コマンドを再度実行します/usr/local/bin/redis-trib.rb create --replicas 1 192.168.43.175:7001 192.168.43.175:7002 192.168.43.176:7003 192.168.43.176:7004 192.168.43.177:7005 192.168.43.177:7006
。クラスタ全体を正常に起動できます。
4.まとめ
異常やその他の特別な状況でない場合は、通常どおりredis
にクラスタをシャットダウンする必要があるため、再起動すると多くの問題を回避できます。それは少し冗長かもしれません。しかし、一歩一歩前にそれを書くことができるブロガーがいるならば、私はすべての涙は言うまでもなく、デバッグに長い時間を費やしません。レンガを動かし続けます。
いいね!メッセージを残してようこそ!