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

时间:2020-06-06 03:21:32

标签: docker redis

我正在尝试设置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"

1 个答案:

答案 0 :(得分:0)

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

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