1
votes

redis: ReplyError: L'index de la base de données ERR est hors limites

J'ai exécuté redis en utilisant Docker comme ceci:

docker run  .... redis redis-server --appendonly 'yes' --db-count=16

dans le passé, cela fonctionnait bien, mais maintenant j'obtiens cette erreur:

const client_db0 = new Redis(`redis://${conf["platform-build.public-dns"]}:6379/0`);
const client_db1 = new Redis(`redis://${conf["platform-build.public-dns"]}:6379/1`);
const client_db2 = new Redis(`redis://${conf["platform-build.public-dns"]}:6379/2`);
const client_db3 = new Redis(`redis://${conf["platform-build.public-dns"]}:6379/3`);

commande: {name: 'select', args: ['20127']}}

On dirait qu'il essaie de se connecter à la base de données 20127 , je suis certain que c'est l'un de ces quatre:

{ ReplyError: ERR DB index is out of range
    at parseError (/root/interos/repos/ntrs-cli/node_modules/redis-parser/lib/parser.js:179:12)
    at parseType (/root/interos/repos/ntrs-cli/node_modules/redis-parser/lib/parser.js:302:14)

donc y a-t-il un moyen de démarrer redis et de lui dire d'ajouter plus de bases de données? quelque chose comme:

docker run  --rm -p '6379:6379' -v "$redis_data_dir:/data" --name my_redis_server -d redis redis-server --appendonly 'yes'


0 commentaires

3 Réponses :


1
votes

La commande SELECT est utilisée pour choisir la base de données que vous utilisez. 20127 est bien au-delà de votre limite configurée de 16.

Modifiez les bases de données dans /etc/redis.conf pour qu'elles soient plus élevées, ce qui est probablement une mauvaise idée pour de très grandes valeurs comme 20K, ou choisissez une valeur dans le plage 0..15.

Si vous ne savez pas d'où vient 20127, recherchez-le dans le code ou la configuration d'origine.


0 commentaires

1
votes

C'était dû à l'espace blanc supplémentaire que j'avais ici:

 'platform-build.public-dns': ' 127.0.0.1'

Peut-être que l'analyseur pourrait être amélioré?


2 commentaires

Ce n'est généralement pas le travail de l'outil de configuration de couper les espaces superflus, donc c'est juste des déchets.


Pourrait lancer une erreur d'analyse, au lieu de l'interpréter complètement



0
votes

dans le fichier etc / redis / redis.conf changez la ligne bases de données 16 (par défaut, il en a 16), vous en aurez probablement besoin de plus de 16

par défaut, chaque index DB est responsable de 8 ou 10 bases de données (je ne m'en souviens pas), donc par défaut vous n'utilisez que 2 index (0 et 1)


0 commentaires