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
Я действительно не понимаю, что я делаю неправильно. Любые советы/предложения приветствуются. Спасибо за ваше время и терпение.