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

时间:2017-10-16 18:39:08

标签: php docker redis docker-compose predis

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

无效

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

我能够通过改变主机网址来解决这个问题

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

如果你转到Predis Connection Factory

,你可以在Predis上找到可用的方案

和Predis支持协议可以与Redis实例进行通信

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

像在Connection Parameters

中提到的那样