エラーメッセージ
Spring Bootプロジェクトでredisクラスターにアクセスする際のエラー:
redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException:クラスターのリダイレクトが多すぎますか?
原因分析
Redisは複数のIP
例をバインドします。
- redis.confファイルで172.0.0.1 192.168.186.1をバインド
- クラスターを作成するとき、ホストは172.0.0.1を使用します。例:redis-cli --cluster create 172.0.0.1:7000 172.0.0.1:7001 172.0.0.1:7002 172.0.0.1:7003 172.0.0.1:7004 172.0.0.1:7005-クラスターレプリカ1
問題の修正
bindはホストIPとして構成され、クラスターを再構築します。例:redis-cli --cluster create 192.168.186.1:7000 192.168.186.1:7001 192.168.186.1:7002 192.168.186.1:7003 192.168.186.1:7004 192.168.186.1:7005 --cluster -レプリカ1
- バインドは、すべてのノードのredi.confファイルでホストIPとして構成されています
- すべてのノードのnodes.confおよびrdbファイルを削除します
- すべてのredisプロセスを終了する
- すべてのredisインスタンスを再起動します
- Redis-cli --cluster create 192.168.186.1:7000 192.168.186.1:7001 192.168.186.1:7002 192.168.186.1:7003 192.168.186.1:7004 192.168.186.1:7005 --cluster-replicas 1
- プロジェクトを再起動して、通常にアクセスします
クラスターの再構築時にエラーが報告された場合:ERR]ノード192.168.186.1:7001は空ではありません。いずれかのノードが既に他のノード(クラスタノードとチェック)を知っているか、データベース0でいくつかのキーを含む
可参考EDIS-CLI --cluster创建Redisの集群报错を作成