无法从Docker容器连接到Redis集群

问题描述 投票:0回答:1

我正在尝试设置Redis集群。该配置是群集的最低配置。我正在使用docker-compose运行我的应用程序。但是它总是抛出以下错误。但是,当我将Redis连接到外部工具时,它已成功连接。

ClusterAllFailedError: Failed to refresh slots cache

const db = new Redis.Cluster([{
    host: "redis",
    port: 6379
}]) 

我可以在Docker容器上看到Redis主实例和副本实例

master

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"
docker redis
1个回答
0
投票

您未使用Redis群集,仅使用一个主副本和一个副本。在这种情况下,您的应用程序应该只使用singleinstance类,我认为是这样的:

const db = new Redis([{
    host: "redis",
    port: 6379
}])
© www.soinside.com 2019 - 2024. All rights reserved.