Конфигурирование Redis-кеша в Django с использованием django-environment

Вот соответствующая часть моего settings.py:

CACHES = {
    'default': {
        'BACKEND': 'redis_cache.RedisCache',
        'LOCATION': env.str("REDIS_URI"),
        'OPTIONS': {
            'DB': 1,
            'SOCKET_TIMEOUT': 5,
            'SOCKET_CONNECT_TIMEOUT': 5,
            'CONNECTION_POOL_CLASS': 'redis.BlockingConnectionPool',
            'CONNECTION_POOL_CLASS_KWARGS': {
                'max_connections': 50,
                'timeout': 20},
            'PICKLE_VERSION': -1,
        },
    },
}

Я перемещаю вышеупомянутую конфигурацию в django-environment:

env REDIS_URL=rediscache://127.0.0.1:6379/1client_class=redis_cache.RedisCache&default_timeout=360

Как я могу добавить URL-адрес подключения из REDIS_URL к Джанго DATABASES?

1 ответ

Прежде всего, вам не хватает ? в параметрах URL:

REDIS_URL=rediscache://127.0.0.1:6379/1?client_class=redis_cache.RedisCache&default_timeout=360

Во-вторых, все это описано в документах.

В твоем случае:

CACHES = {
    'default': env.cache()  # default = 'CACHE_URL' environmennt variable
}

CACHE_URL должен быть установлен как переменная окружения.

export CACHE_URL=rediscache://127.0.0.1:6379/1?client_class=redis_cache.RedisCache&default_timeout=360

Если вы настаиваете на использовании REDIS_URL Вы можете сделать следующее:

CACHES = {
    'default': env.cache('REDIS_URL')
}

Другие параметры могут быть добавлены с помощью параметров URL.

Другие вопросы по тегам