我想使用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
2条答案
按热度按时间b5buobof1#
我认为问题来自
'LOCATION': 'redis://127.0.0.1:6379'
行,它与您在Docker网络中为redis
容器指定的名称不匹配。实际上,命令
docker run --name some-redis -d redis
将some-redis
赋给容器名称,所以你必须在Python代码中用这个名称引用Redis示例。简单地说,在上面的代码中,必须用
'LOCATION': 'redis://some-redis:6379'
替换'LOCATION': 'redis://127.0.0.1:6379'
。oknwwptz2#
Django在4.0版本中引入了Redis后端。https://docs.djangoproject.com/en/4.1/topics/cache/#redis
确保在Docker容器中的Django版本至少是4.0。
或者如果你不想升级Django,你可以使用
django-redis
这样的包。