djangocachingredisdjango-redis

Django with redis is caching all pages


I'm using template cache with django-redis and it works properly but, although I don't use decorators (like cache_page, cache_control etc..), django is caching automatically every loaded page.

I verified this using redis-cli. This is keys * output after page load:

1) ":1:views.decorators.cache.cache_header..11786bb66822aef24b9fe0dac22e6e4e..."
2) ":1:views.decorators.cache.cache_page..GET.11786bb66822aef24b9fe0dac22e6e4e..."
3) ":1:django.contrib.sessions.cached_db8ss2k5s9jmp42cer0fs1nd..."

I tried to use never_cache on every view and it works but I don't see that as a good solution. There's a better way?

My configuration is simple

CACHES = {
    'default':
        {
            'BACKEND': 'django_redis.cache.RedisCache',
            'LOCATION': 'redis://redis_ip:redis_port',
            'TIMEOUT': 60
        },
}

MIDDLEWARE.PY

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
     ...
    'django.middleware.cache.FetchFromCacheMiddleware',
    ...]

Thanks to all


Solution

  • Remove UpdateCacheMiddleware and FetchFromCacheMiddleware from your MIDDLEWARE settings. They are meant for per-site caching, so every page is cached when you have those middleware.