在我的settings.py中,我有:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'ws_cache_table',
'TIMEOUT': '3000000',
'OPTIONS': {
'MAX_ENTRIES': 10000000
}
}
}
但如果我在python manage.py shell
中执行此操作:
from django.core.cache import cache
print type(cache)
我得到了:
django.core.cache.backends.locmem.LocMemCache
为什么!??? 现在我无法清除缓存......
为证明我的配置是核心,我可以这样做:
from django.conf import settings
conf = settings.CACHES.get('default', None)
我得到了:
{'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'ws_cache_table',
'OPTIONS': {'MAX_ENTRIES': 10000000},
'TIMEOUT': '3000000'}
在定义CACHES之前,似乎调用了get_cache
方法...
答案 0 :(得分:0)
首先,您应该记住,local_settings.py
会覆盖settings.py
。
然后你应该注意后端正在运行的缓存守护进程,因为有不同的缓存守护进程,根据你的运行情况,你需要相应的指定选项。
e.g。对于memcached,local_settings.py会读取:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211'
'CACHE_TIME': '3600',
}
}
而对于locmem:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
'LOCATION': '127.0.0.1:11211'
'TIMEOUT': 3600'
}
}