我用Docker运行了redis,如下所示:
docker run --rm -p '6379:6379' -v "$redis_data_dir:/data" --name my_redis_server -d redis redis-server --appendonly 'yes'
在过去,这是正常的,但现在我得到这个错误:
{ 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)
命令:{名称:'select',参数:[ '20127年' ] } }
它看起来像是在尝试连接到db 20127
,我确定它是以下四个之一:
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`);
那么,有没有什么方法可以启动Redis并告诉它添加更多数据库呢?比如:
docker run .... redis redis-server --appendonly 'yes' --db-count=16
4条答案
按热度按时间ryhaxcpt1#
在文件
etc/redis/redis.conf
中,更改databases 16
行(默认情况下,它有16行),您很可能需要16行以上行默认情况下,每个DB索引负责8个或10个数据库(不记得了),因此默认情况下您只使用2个索引(0和1)
ipakzgxi2#
SELECT
命令用于选择您正在使用的数据库。20127远远超出了您配置的16个数据库的限制。要么将
/etc/redis.conf
中的databases
更改得更高,这对于像20K这样的非常大的值可能是个坏主意,要么在0..15范围内选择一个值。如果您不确定20127的来源,请在原始代码或配置中找到它。
omqzjyyz3#
这是由于我在这里有额外的空白:
也许解析器可以改进?
z4bn682m4#
当我停止Docker环境并执行
错误
ERR DB index is out of range (Redis::CommandError)
消失。