我正在尝试设置Redis集群。该配置是群集的最低配置。我正在使用docker-compose运行我的应用程序。但是它总是抛出以下错误。但是,当我将Redis连接到外部工具时,它已成功连接。
ClusterAllFailedError: Failed to refresh slots cache
const db = new Redis.Cluster([{
host: "redis",
port: 6379
}])
我可以在docker容器上看到Redis主实例和副本实例
大师
container ID - 8a7f4d9fc877
image - bitnami/redis:latest
ports - 0.0.0.0:32862->6379/tcp
name - mogus_redis_1
从动
container ID - f04433e04de5
image - bitnami/redis:latest
ports - 0.0.0.0:32863->6379/tcp
name - mogus_redis-replica_1
yml文件
redis:
image: "bitnami/redis:latest"
ports:
- 6379
environment:
REDIS_REPLICATION_MODE: master
ALLOW_EMPTY_PASSWORD: "yes"
volumes:
- redis-data:/bitnami
redis-replica:
image: "bitnami/redis:latest"
ports:
- 6379
depends_on:
- redis
environment:
REDIS_REPLICATION_MODE: slave
REDIS_MASTER_HOST: redis
REDIS_MASTER_PORT_NUMBER: 6379
ALLOW_EMPTY_PASSWORD: "yes"
答案 0 :(得分:0)
您不是在使用Redis群集,而只是一个主副本和一个副本。在这种情况下,您的应用程序应该只使用singleinstance类,我认为是这样的:
const db = new Redis([{
host: "redis",
port: 6379
}])