我可以使用 Redis 容器 [Docker] 作为集群吗?

Can I use Redis container [Docker] as cluster?

我正在使用 docker-compose 为我的 Dev Env 配置容器,我有 3 个容器(nginx、php、redis)

version: '3'

services:
    php:
        ..
    nginx:
        ..
    redis:
        image: redis
        ports:
          - 6379:6379

我正在使用 Predis 从 php 容器连接到 redis,我的问题是:当我做类似的事情时,我正在尝试在集群模式下工作

$parameters = ['redis'];
$options    = ['cluster' => 'redis'];

$client = new Predis\Client($parameters, $options);

不工作

您可能需要获取用于连接的 redis 容器的 IP 地址。

(Assumin Linux) 运行 docker ps 找到容器的名字(可能是docker_redis_1),然后docker inspect <container name> | grep IPAddress。在连接中使用此 IP 地址 -

$options    = ['cluster' => '<IP Address of container>'];

我可以通过像那样更改主机 url 来解决这个问题

$parameters = ['redis://redis'];

如果您转到 Predis Connection Factory

,您可以在 Predis 上找到许多可用的方案

Predis 支持可能与 Redis 实例通信的协议

tcp (TCP/IP)、unix(UNIX 域套接字)或 http(通过 Webdis 的 HTTP 协议)

喜欢在Connection Parameters

中提到