django缓存无法按预期工作

时间:2015-08-24 14:14:16

标签: django memcached django-cache

我想在我的网站上添加简单的缓存功能。我为匿名用户启用了缓存,但它没有按预期工作。我正在使用memcached settings.py

########################### caching #################################
CACHE_PORT = '11211'
CACHE_MIDDLEWARE_SECONDS = 60
CACHE_MIDDLEWARE_KEY_PREFIX = "default"
CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True

# Production Environment
if ON_OPENSHIFT:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '%s:%s' % (os.environ['OPENSHIFT_INTERNAL_IP'], CACHE_PORT),
        }
    }

    CACHE_VIEW_LENGTH = datetime.now() + timedelta(30) # 30 day cache expiration

# Development Environment
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:%s' % CACHE_PORT,
        }
    }

    CACHE_VIEW_LENGTH = datetime.now() + timedelta(1) # Set to 0 for development
MIDDLEWARE_CLASSES = (
    #cache  - must be first in middleware_classes
    'django.middleware.cache.UpdateCacheMiddleware',
    #cache end
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    #cache  - must be last in middleware_classes
    'django.middleware.cache.FetchFromCacheMiddleware',
    #cache end

)

因为我设置了CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True,所以除了如果我以登录用户加载页面,我就不会获得缓存版本。
我加载了索引页面,其中是我的对象列表。有10个对象。我通过表单添加了新对象。当我再次检查我的索引页面时,我只看到10个对象 所以我的问题很简单:为什么django只忽略我的匿名设置并为登录用户缓存页面

0 个答案:

没有答案