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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (53)

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

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': 'c:/foo/bar',
    },
    'inmem': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
    }
}

文档有:

cache.set('my_key', 'hello, world!', 30)
cache.get('my_key')

但是现在我如何设置和获取缓存仅用于“inmem”缓存后端(在将来的memcached中)?文档没有提到如何做到这一点。

提问于
用户回答回答于
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 
用户回答回答于

自Django 1.9以来,get_cache被否决了。执行以下操作以寻址“inmem”:

from django.core.cache import caches
caches['inmem'].get(key)

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励