我使用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);
无效
答案 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 中提到的那样