2017-10-16 33 views
0

J'utilise docker-Compose pour configurer des conteneurs pour mon Env Dev et moi avons 3 conteneurs (nginx, php, redis)Puis-je utiliser le conteneur Redis [Docker] en tant que cluster?

version: '3' 

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

J'utilise Predis pour se connecter à Redis du contenant php, ma question est: Je suis en train de travailler en mode cluster, quand je fais quelque chose comme ça

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

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

ne fonctionne pas

Répondre

0

j'ai pu résoudre ce problème en changeant l'URL hôte comme ça

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

vous trouverez peut systèmes disponibles sur Predis si vous allez à Predis Connection Factory

et le soutien Predis peuvent protocoles pour communiquer avec une instance de Redis

tcp (TCP/IP), unix (sockets de domaine UNIX) ou ht tp (protocole HTTP par Webdis)

comme il mentionne dans Connection Parameters

0

Vous aurez probablement besoin d'obtenir l'adresse IP du conteneur Redis pour la connexion. (Assumin Linux) Exécutez docker ps pour trouver le nom du conteneur (peut être docker_redis_1), puis docker inspect <container name> | grep IPAddress. Utilisez cette adresse IP de la connexion -

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

Non, ce ne fonctionne pas – PeterTanath

+0

serait plus utile si vous avez donné un peu plus d'informations que « cela ne fonctionne pas ». Avez-vous des erreurs? –

+0

bien, j'ai essayé de faire quelque chose comme ça $ paramètres = ['tcp: //172.19.0.4: 6379'] mais le client n'a pas pu établir la connexion – PeterTanath