sql >> Base de Datos >  >> NoSQL >> Redis

Error 99 al conectarse a localhost:6379. No se puede asignar la dirección solicitada

En la aplicación del matraz tengo una función que intenta crear un cliente redis

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

Cuando su proceso de matraz se ejecuta en un contenedor, localhost se refiere a la interfaz de red del propio contenedor. No se resuelve en la interfaz de red de su host docker.

Entonces necesitas reemplazar localhost con la dirección IP del contenedor que ejecuta redis.

En el contexto de un archivo docker-compose.yml, esto es fácil ya que docker-compose hará que los nombres de los servicios se resuelvan en la dirección IP correcta del contenedor:

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

luego, en la aplicación de tu matraz, usa:

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