SessionId внутри заголовка cookie замедляет запрос (Django)

Я учусь использовать сессии и кэширование в django. Я заметил, что после входа в систему в заголовок cookie включается sessionId. Я использую декораторы "@authentication_classes" и "@permission_classes" для проверки сессии. Я также использую Redis для кэширования сессии, так как не хочу каждый раз обращаться к БД. Я следовал документации по настройке сервера django и Redis. Как только пользователь входит в систему, сессия записывается в кэш. Проблема в том, что, несмотря на то, что сессия находится в кэше, при каждом запросе происходит обращение к базе данных, и это замедляет время ответа примерно до 300 мс.

Это api, которое я использую для тестирования. Он ничего не делает, но занимает 300 мс и попадает в БД каждый раз, когда я его вызываю. Я использую "never_cache", потому что не хочу, чтобы весь ответ кэшировался.

@api_view(["GET"]) 
@authentication_classes ([SessionAuthentication]) 
@permission_classes([IsAuthenticated]) 
@never_cache
def test(request, username):
    return JsonResponse("", safe=False)

вот запрос, который я делаю: request

Если я удалю декораторы аутентификации сессии, SessionId больше не требуется для доступа к api, но БД все еще бьется и ответ все еще занимает 300 мс (в заголовке cookie все еще присутствует токен sessionID).

@api_view(\["GET"\])
@never_cache
def test(request, username):
return JsonResponse("", safe=False)

Теперь, если я удалю sessionId из заголовка cookie, БД больше не будет поражена, а ответ займет всего 20 мс. request2

Я также попробовал создать новый заголовок "sessionId" и передать sessionId, запрос по-прежнему выполняется быстро, но декораторы django больше не могут подтвердить сессию.

Это ключ в сервере redis: redis

Вот мои настройки промежуточного ПО и кэша в файле setting.py: settings

Я действительно не понимаю, что я делаю неправильно. Любые советы/предложения приветствуются. Спасибо за ваше время и терпение.

Вернуться на верх