You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django+Docker使用Redis缓存报错:找不到redis缓存后端模块

问题描述

使用Docker部署Redis作为Django缓存时,遇到以下错误:

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',
    }
}

Redis启动命令:

docker run --name some-redis -d redis

解决方案

1. 匹配Django版本安装对应依赖

  • Django 4.2及以上版本:
    官方内置的RedisCache后端依赖redis-py库,执行以下命令安装:

    pip install redis
    
  • Django 4.2以下版本:
    内置无Redis缓存后端,需使用第三方库django-redis:

    1. 安装依赖:
      pip install django-redis
      
    2. 修改缓存配置的BACKEND字段:
      CACHES = {
          'default': {
              'BACKEND': 'django_redis.cache.RedisCache',
              'LOCATION': 'redis://some-redis:6379',
          }
      }
      

2. 修正Docker环境下的Redis访问地址

Docker容器内的127.0.0.1指向容器自身,而非宿主机,需调整LOCATION的主机地址:

  • 确保Redis与Django容器处于同一Docker网络,直接用Redis容器名作为主机名(示例:redis://some-redis:6379)
  • 配置同一网络的步骤:
    1. 创建自定义网络:
      docker network create django-redis-net
      
    2. 重新启动Redis容器并加入该网络:
      docker run --name some-redis --network django-redis-net -d redis
      
    3. 启动Django容器时同样加入该网络:
      docker run --name your-django-container --network django-redis-net -d your-django-image
      

3. 验证缓存连接

进入Django Shell测试连接是否正常:

# 启动Django Shell
python manage.py shell

# 测试缓存读写
from django.core.cache import cache
cache.set('test_key', 'test_value', 60)
print(cache.get('test_key'))

若输出test_value,则缓存配置生效。


内容的提问来源于stack exchange,提问作者Yuliyan Petrov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:46:17