使用django-environ在Django中进行Redis缓存配置

时间:2018-09-19 07:29:04

标签: django django-rest-framework environ

这是我的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-environ:

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

如何将REDIS_URL的连接URL添加到Django的DATABASES

1 个答案:

答案 0 :(得分:0)

首先,您在URL参数中缺少?

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

第二,全部描述为in the docs

在您的情况下:

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参数添加其他选项。