我使用 Docker 运行 redis,如下所示:
docker run --rm -p '6379:6379' -v "$redis_data_dir:/data" --name my_redis_server -d redis redis-server --appendonly 'yes'
Run Code Online (Sandbox Code Playgroud)
过去这工作正常,但现在我收到此错误:
Run Code Online (Sandbox Code Playgroud){ 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)命令: { name: 'select', args: [ '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`);
Run Code Online (Sandbox Code Playgroud)
那么有什么方法可以启动redis并告诉它添加更多数据库吗?就像是:
docker run .... redis redis-server --appendonly 'yes' --db-count=16
Run Code Online (Sandbox Code Playgroud)
Иго*_*ков 10
在文件etc/redis/redis.conf
更改行中databases 16(默认情况下有 16 个),很可能您需要超过 16 个
默认情况下,每个数据库索引负责8个或10个数据库(不记得了),所以默认情况下你只使用2个索引(0和1)
该SELECT命令用于选择您正在使用的数据库。20127远远超出了您配置的限制 16。
要么更改databases为/etc/redis.conf更高的值(对于 20K 等非常大的值来说这可能不是一个好主意),要么选择 0..15 范围内的值。
如果您不确定 20127 来自哪里,请在原始代码或配置中追踪它。
| 归档时间: |
|
| 查看次数: |
16604 次 |
| 最近记录: |