docker - redis: ReplyError: ERR DB 索引超出范围

标签 docker redis redis-server

我像这样使用 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)

command: { 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`);

那么有什么方法可以启动redis并告诉它添加更多数据库吗?就像是:
docker run  .... redis redis-server --appendonly 'yes' --db-count=16

最佳答案

在文件中 etc/redis/redis.conf换线databases 16 (默认情况下,它有 16 个),很可能您需要超过 16 个
默认情况下,每个 DB 索引负责 8 或 10 个数据库(不记得了),因此默认情况下您只使用 2 个索引(0 和 1)

关于docker - redis: ReplyError: ERR DB 索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58106646/

相关文章:

docker - Dockerfile是否与Raspberry Pi兼容?

docker - 在不使用 docker 机器的情况下部署 docker swarm

c# - 如何使用日期范围从 Redis (pub/sub) 保存和检索 channel 数据?

php - 如何在 PHP 中执行 Redis 事务?

server - 地址已与 redis-server 一起使用

docker - 将configmap文件挂载到主机路径卷上

docker - Docker网络,从Windows主机连接到linux容器

laravel - 如何在同一台服务器上创建另一个 Redis 服务器实例(由 Laravel Forge 管理)

从 dump.rdb 加载后删除所有键的 Redis 服务器