Джанго с редисом кеширует все страницы - PullRequest
0 голосов
/ 03 июня 2019

Я использую шаблонный кеш с django-redis, и он работает правильно, но, хотя я не использую декораторы (например, cache_page, cache_control и т. Д.), Django автоматически кэширует каждую загруженную страницу.

Я проверил это с помощью Redis-Cli.Это вывод keys * после загрузки страницы:

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

Я пытался использовать never_cache для каждого представления, и это работает, но я не считаю это хорошим решением.Есть лучший способ?

Моя конфигурация проста

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',
    ...]

Спасибо всем

1 Ответ

1 голос
/ 03 июня 2019

Удалите UpdateCacheMiddleware и FetchFromCacheMiddleware из ваших MIDDLEWARE настроек.Они предназначены для кэширования на сайт , поэтому каждая страница кэшируется, когда у вас есть это промежуточное ПО.

...