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'
3 Réponses :
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.
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é?
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
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)