我可以使用 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 协议)
中提到
我正在使用 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 协议)
中提到