В приложении Python / Django поиск значения, хранящегося в Redis, происходит медленнее, чем поиск в словаре request.session
?
Справочная информация: У меня есть Djangoприложение, где я использую сеансы на основе БД.Т.е. вместо django.contrib.sessions
я использовал эту изящную маленькую стороннюю библиотеку .
. Недавно я запустил тест, в результате чего я сохранил тестовое значение в локальном экземпляре Redis через * 1012.* redis-py обертка (то есть my_server.set('test','1')
).Я сохранил то же значение теста в request.session['test']
.
Затем я извлек тестовое значение из каждого и сравнил затраченное время.request.session
в этом сценарии выполняется повторное выполнение с коэффициентом, превышающим 2x.
Проблема: Приложение не распространяется ни в коем случае, все совместно используется и происходит на одной машине- очень ванильный.
Результат кажется мне нелогичным.Зачем?Потому что мои сеансы основаны на DB, и я подумал, что redis будет быстрее, чем все, что может предложить Django.Ясно, что я не прав.
Может ли эксперт объяснить, что на самом деле здесь происходит?Может быть, оболочка Python на API ядра Redis замедляет работу?
Если вам нужна дополнительная информация или вы скептически относитесь к тому, как я провел тест, спросите.
Ps Я просто поместил два конкурирующих способа в цикл for для 100K итераций и измерил время, необходимое для завершения.