Конфигурация Redis-кэша в Django с использованием django-environment - PullRequest
0 голосов
/ 19 сентября 2018

Вот соответствующая часть моего 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 Ответ

0 голосов
/ 08 ноября 2018

Прежде всего вам не хватает ? в параметрах 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.

...