[例外] ローカル Redis クラスターに接続できません。エラー メッセージ ERR SELECT はクラスター モードでは許可されていません。構成ファイルは Redis スタンドアロンとクラスター モードの動的制御を実現します

1. エラー内容

Unable to connect to Redis
错误:ERR SELECT is not allowed in cluster mode

ここに画像の説明を挿入

https://blog.csdn.net/qq_40580037/article/details/107508694
https://blog.csdn.net/xu990128638/article/details/116135354

2. エラーの説明

Redis クラスター モードでは、db0 のみを選択でき、他のライブラリを選択すると上記の例外がスローされます。
元のアドレス: https://github.com/delano/redis-dump/issues/25

3、エラー解決

最後に、スタンドアロン バージョンの Redis 構成ファイルをロールバックし、問題は解決しました。

3.1 ローカルホストファイルの表示

IP の変換は通常、ホストで実行されます。
ここに画像の説明を挿入

3.2 Nacos 構成センターで Redis ファイルを表示する

現在の構成をチェックして、異常な Redis 構成がないかどうかを確認します。

3.2.1 スタンドアロン構成

redis:
	host: xxxx-redis
	port: 6379
	password:
	database: 2

3.2.2 クラスタ構成

redis:
	database: 2
	cluster:
	#设置key的生存时间,当key过期时,它会被自动删除;
	expire-seconds: 120
	#设置命令的执行时间,如果超过这个时间,则报错;
	command-timeout: 5000
	#设置redis集群的节点信息,其中namenode为域名解析,通过解析域名来获取相应的地址;
	nodes: IP1:Port1,IP2:Port2,IP3:Port3,IP4:Port4
	password: xxxx

4. 構成ファイルの動的制御、Redis スタンドアロンおよびクラスター モード

以下は、スイッチを使用して Redis スタンドアロン モードとクラスター モードを制御する yaml ファイルの例です。

# 定义Redis连接信息
redis:
  host: 127.0.0.1
  port: 6379
  password: ''

# 定义开关信息
cluster_mode: false

# 如果cluster_mode为false,则使用单机模式
# 如果cluster_mode为true,则使用集群模式
# 根据实际情况设置Redis集群节点信息
cluster_nodes: ['127.0.0.1:7000', '127.0.0.1:7001', '127.0.0.1:7002']
cluster_timeout: 5000

yaml ファイルには、Redis の接続情報 (redis.host、redis.port、redis.password) が定義されており、cluster_mode スイッチを使用して Redis の動作モードを制御します。

  • cluster_mode が false の場合は、スタンドアロン モードを使用します。
  • cluster_mode が true の場合、クラスター モードが使用されます。

スタンドアロンモードでは、Redisの接続情報を設定するだけで済みます。

クラスター モードでは、Redis クラスター ノードの情報 (cluster_nodes) とクラスター モードのタイムアウト期間 (cluster_timeout) も指定する必要があります。実際の状況に応じてクラスタノードのIPアドレスとポート番号を設定できます。

この yaml ファイルを読み取ることで、cluster_mode の値に応じてどのモードの Redis 接続情報を使用するかを決定し、Redis の動作モードを動的に制御できます。

おすすめ

転載: blog.csdn.net/wstever/article/details/129216197
おすすめ