1. Contenu de l'erreur
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. Description de l'erreur
En mode cluster Redis, seul db0 peut être sélectionné et l'exception ci-dessus sera levée si d'autres bibliothèques sont sélectionnées.
Adresse d'origine : https://github.com/delano/redis-dump/issues/25
Trois, résolution d'erreur
Enfin annulé le fichier de configuration Redis pour la version autonome et le problème a été résolu
3.1 Afficher le fichier hôte local
La conversion d'ip est normalement effectuée dans l'hôte.
3.2 Afficher le fichier Redis dans le centre de configuration Nacos
Vérifiez la configuration actuelle pour voir s'il existe une configuration Redis anormale.
3.2.1 Configuration autonome
redis:
host: xxxx-redis
port: 6379
password:
database: 2
3.2.2 Paramétrage des grappes
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. Contrôle dynamique des fichiers de configuration, Redis autonome et mode cluster
Voici un exemple de fichier yaml qui utilise des commutateurs pour contrôler le mode autonome et cluster de Redis :
# 定义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
Dans le fichier yaml, les informations de connexion de Redis (redis.host, redis.port, redis.password) sont définies et le commutateur cluster_mode est utilisé pour contrôler le mode de fonctionnement de Redis.
- Si cluster_mode est faux, utilisez le mode autonome ;
- Si cluster_mode est vrai, le mode cluster est utilisé.
En mode autonome, il vous suffit de définir les informations de connexion de Redis.
En mode cluster, vous devez également fournir les informations des nœuds du cluster Redis (cluster_nodes) et le délai d'expiration du mode cluster (cluster_timeout). Vous pouvez définir l'adresse IP et le numéro de port du nœud de cluster en fonction de la situation réelle.
En lisant ce fichier yaml, vous pouvez décider quel mode d'informations de connexion Redis utiliser en fonction de la valeur de cluster_mode, afin de contrôler dynamiquement le mode de fonctionnement de Redis.