首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Django中使用两个不同的缓存后端?

如何在Django中使用两个不同的缓存后端?
EN

Stack Overflow用户
提问于 2011-05-10 19:25:15
回答 5查看 7.3K关注 0票数 27

我需要使用memcached和基于文件的缓存。我在设置中设置了我的缓存:

代码语言:javascript
复制
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': 'c:/foo/bar',
    },
    'inmem': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
    }
}

dummy是临时的。Docs说:

代码语言:javascript
复制
cache.set('my_key', 'hello, world!', 30)
cache.get('my_key')

好吧,但我现在如何设置和获取缓存只为'inmem‘缓存后端(在未来的memcached)?文档中没有提到如何做到这一点。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-19 02:43:17

代码语言:javascript
复制
CACHES = {
  'default': {
    'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
    'LOCATION': 'c:/foo/bar',
  },
  'inmem': {
    'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
  }
} 

from django.core.cache import get_cache, cache
inmem_cache = get_cache('inmem')
default_cache = get_cache('default')
# default_cache == cache 
票数 32
EN

Stack Overflow用户

发布于 2016-11-29 01:49:45

从Django 1.9开始,get_cache就被废弃了。执行以下操作以从'inmem‘中寻址密钥(罗马人对answer的补充):

代码语言:javascript
复制
from django.core.cache import caches
caches['inmem'].get(key)
票数 23
EN

Stack Overflow用户

发布于 2014-03-20 05:25:05

除了罗马人上面的回答。您还可以按名称有条件地导入缓存,如果请求的缓存不存在,则使用默认缓存(或任何其他缓存)。

代码语言:javascript
复制
from django.core.cache import cache as default_cache, get_cache
from django.core.cache.backends.base import InvalidCacheBackendError

try:
    cache = get_cache('foo-cache')
except InvalidCacheBackendError:
    cache = default_cache

cache.get('foo')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5949271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档