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

Django中如何配置多类型缓存并在代码中分别调用

Django多缓存配置与使用指南

一、settings.py 缓存配置

在settings.py里,得用CACHES字典配置多个缓存后端,每个后端设置唯一别名,同时指定default缓存(也就是from django.core.cache import cache默认调用的实例)。

示例配置:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'my_cache_table',  # 数据库缓存对应的表名,需先执行createcachetable命令创建
    },
    'redis': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',  # 按实际Redis地址修改
    }
}

注意:数据库缓存需要先执行python manage.py createcachetable命令,生成对应的缓存表。

二、代码中调用不同缓存

默认的cache对象只会指向default配置的缓存,要使用其他缓存,得通过django.core.cache.caches按别名获取对应实例。

1. 使用默认数据库缓存

直接导入默认缓存即可:

from django.core.cache import cache

# 操作默认缓存
cache.set('key', 'value', timeout=3600)
value = cache.get('key')

2. 使用Redis缓存

通过别名redis获取缓存实例:

from django.core.cache import caches

# 获取Redis缓存对象
redis_cache = caches['redis']

# 操作Redis缓存
redis_cache.set('redis_key', 'redis_value', timeout=3600)
redis_value = redis_cache.get('redis_key')

3. 优化重复调用

如果同一个文件多次使用某一缓存,可在文件顶部定义全局变量,避免重复获取实例:

from django.core.cache import caches

# 全局变量存储Redis缓存实例
redis_cache = caches['redis']

# 后续直接调用
redis_cache.set('foo', 'bar')

三、额外注意事项

  • 若使用Django自带的RedisCache(Django 4.0+支持),需先安装依赖:pip install redis;如果用第三方库如django-redis,则需安装对应包并调整BACKEND值为django_redis.cache.RedisCache
  • 可根据实际需求调整缓存配置参数,比如Redis的密码、连接池设置等
  • 视图、模型、任务队列等任意模块中,都可按上述方式导入对应缓存实例使用

内容的提问来源于stack exchange,提问作者Deepali Joshi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:00:48