【问题标题】:Can I use Redis container [Docker] as cluster?我可以使用 Redis 容器 [Docker] 作为集群吗?
【发布时间】:2018-03-28 08:51:27
【问题描述】:

我正在使用 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);

不工作

【问题讨论】:

    标签: php docker redis docker-compose predis


    【解决方案1】:

    您可能需要获取 redis 容器的 IP 地址以进行连接。

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

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

    【讨论】:

    • 如果您提供比“它不起作用”更多的信息会更有用。你有什么错误吗?
    • 好吧,我尝试做类似 $parameters = ['tcp://172.19.0.4:6379'] 但客户端无法建立连接
    【解决方案2】:

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

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

    如果您访问Predis Connection Factory,您可以在 Predis 上找到可用的方案

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

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

    喜欢Connection Parameters中提到的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      • 2019-02-20
      • 2020-10-21
      • 2022-01-03
      • 1970-01-01
      相关资源
      最近更新 更多