services: redis1: image: redis:${REDIS_VERSION} container_name: redis-server-1 restart: unless-stopped command: > redis-server --appendonly yes --requirepass ${REDIS1_PASSWORD} --maxmemory 512mb --maxmemory-policy allkeys-lru --save 900 1 --save 300 10 --save 60 10000 environment: - TZ=${TIMEZONE} ports: - "${REDIS1_PORT}:6379" volumes: - redis1-data:/data networks: - redis-network healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS1_PASSWORD}", "PING"] interval: 30s timeout: 10s retries: 3 start_period: 20s redis2: image: redis:${REDIS_VERSION} container_name: redis-server-2 restart: unless-stopped command: > redis-server --appendonly yes --requirepass ${REDIS2_PASSWORD} --maxmemory 512mb --maxmemory-policy allkeys-lru --save 900 1 --save 300 10 --save 60 10000 environment: - TZ=${TIMEZONE} ports: - "${REDIS2_PORT}:6379" volumes: - redis2-data:/data networks: - redis-network healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS2_PASSWORD}", "PING"] interval: 30s timeout: 10s retries: 3 start_period: 20s redis-commander-1: image: rediscommander/redis-commander:latest container_name: redis-commander-1 restart: unless-stopped depends_on: redis1: condition: service_healthy environment: - TZ=${TIMEZONE} # UI auth - HTTP_USER=${COMMANDER_HTTP_USER} - HTTP_PASSWORD=${COMMANDER_HTTP_PASSWORD} # Format: name:host:port:db:password - REDIS_HOSTS=redis1:redis1:6379:0:${REDIS1_PASSWORD} ports: - "${COMMANDER1_PORT}:8081" networks: - redis-network redis-commander-2: image: rediscommander/redis-commander:latest container_name: redis-commander-2 restart: unless-stopped depends_on: redis2: condition: service_healthy environment: - TZ=${TIMEZONE} - HTTP_USER=${COMMANDER_HTTP_USER} - HTTP_PASSWORD=${COMMANDER_HTTP_PASSWORD} - REDIS_HOSTS=redis2:redis2:6379:0:${REDIS2_PASSWORD} ports: - "${COMMANDER2_PORT}:8081" networks: - redis-network networks: redis-network: driver: bridge volumes: redis1-data: driver: local redis2-data: driver: local