Django Redis与Docker的问题:无效缓存后端错误:没有名为'django.core.cache.backends.redis'的模块

zfycwa2u  于 2022-12-03  发布在  Docker
关注(0)|答案(2)|浏览(365)

我想使用Redis通过Docker该高速缓存,但得到这个错误。

django.core.cache.backends.base.InvalidCacheBackendError: Could not find backend 'django.core.cache.backends.redis.RedisCache': No module named 'django.core.cache.backends.redis'

我的缓存设置如下。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379',
    }
}

我从Django的文档中找到的。
我用这个命令在Docker中启动了一个Redis示例。

docker run --name some-redis -d redis
b5buobof

b5buobof1#

我认为问题来自'LOCATION': 'redis://127.0.0.1:6379'行,它与您在Docker网络中为redis容器指定的名称不匹配。
实际上,命令docker run --name some-redis -d redissome-redis赋给容器名称,所以你必须在Python代码中用这个名称引用Redis示例。
简单地说,在上面的代码中,必须用'LOCATION': 'redis://some-redis:6379'替换'LOCATION': 'redis://127.0.0.1:6379'

oknwwptz

oknwwptz2#

Django在4.0版本中引入了Redis后端。https://docs.djangoproject.com/en/4.1/topics/cache/#redis
确保在Docker容器中的Django版本至少是4.0。
或者如果你不想升级Django,你可以使用django-redis这样的包。

相关问题