Как настроить redis как кеш с flask-session при работе с контейнерами?

Я пытаюсь развернуть flaskapp с помощью docker, поэтому у меня есть два контейнера: один для моего flaskapp, а другой для redis. Я настроил сеть и выполнил обе в ней. При доступе к моему flaskapp возникает следующая ошибка:

ConnectionError: Ошибка 99 при подключении к localhost: 6379. Невозможно назначить запрошенный адрес.

Это происходит потому, что я использую redis в качестве кеша для flask-session и размещаю redis в контейнере с именем exampleredis.

Мой вопрос: как я могу настроить хост Redis в качестве exampleredis во Flask?

У меня есть следующий конфигурационный файл:

class DevConfig(Config):
    REDIS_HOST = 'exampleredis'
    SESSION_TYPE = 'redis'
    JSONIFY_PRETTYPRINT_REGULAR = False
    JSON_SORT_KEYS = False
    BCRYPT_LOG_ROUNDS = 15
    DEBUG = True

person Guilherme Marques    schedule 17.05.2019    source источник


Ответы (1)


Согласно документу flask-session, это, вероятно, должно работать:

import redis

class DevConfig(Config):
    SESSION_REDIS = redis.from_url('redis://exampleredis:6379')
    SESSION_TYPE = 'redis'
    ...
person Philip Tzou    schedule 18.05.2019
comment
Привет, спасибо за ответ! Это частично верно, потому что, как указано в документации к исходному коду Redis, предоставленный URL-адрес должен начинаться с redis: // (для обычного соединения TCP-сокета), rediss: // (для SSL-соединения TCP-сокета) или unix: // (соединение сокета домена Unix). В моем случае это должно быть: redis.from_url('redis://exampleredis:6379') - person Guilherme Marques; 20.05.2019