Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Fehler 99 beim Verbinden mit localhost:6379. Die gewünschte Adresse kann nicht zugewiesen werden

In der Flask-App habe ich eine Funktion, die versucht, einen Redis-Client zu erstellen

db = redis.Redis(host='localhost', port=6379, decode_responses=True)

Wenn Ihr Flask-Prozess in einem Container ausgeführt wird, wird localhost bezieht sich auf die Netzwerkschnittstelle des Containers selbst. Es wird nicht in die Netzwerkschnittstelle Ihres Docker-Hosts aufgelöst.

Sie müssen also localhost ersetzen mit der IP-Adresse des Containers, auf dem redis ausgeführt wird.

Im Kontext einer docker-compose.yml-Datei ist dies einfach, da docker-compose dafür sorgt, dass Dienstnamen in die richtige Container-IP-Adresse aufgelöst werden:

version: "3"
services:
  my_flask_service:
    image: ...
  my_redis_service:
    image: ...

Verwenden Sie dann in Ihrer Flask-App:

db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)