2

Я использую TokenAuthentication для нескольких своих представлений DRF. Сам код представления имеет оптимизированную логику для использования memcached, если ключ существует в кеше - для ускорения путем сокращения запросов БД. Тем не менее, я вижу, что для каждого запроса API с телефона (клиента) сервер по-прежнему выполняет один запрос по крайней мере - Postgres authtoken_token select для проверки пользователя для отправленного authtokenDjango REST Framework - как выполнять аутентификацию Token с помощью Memcached

Есть ли способ избежать этого, поскольку authtoken is редко меняются - сохраняя его в кеше?

Я использую следующие в settings.py, но я не думаю, что это помогает мой случай

SESSION_ENGINE = "django.contrib.sessions.backends.cached_db" 
+0

Невозможно найти код, использующий кеш для аутентификации token в DRF 3.3.1. Просто запрос фильтра модели для каждого запроса ... – Cloudream

ответ

0
  • Вы можете установить ТАЙМОУТ на None при установке маркера в кэше, так что кэшируется маркер никогда не будет expire (до перезапуска/выключения сервера memcache). Или вы можете установить длительную продолжительность таймаута, чтобы минимизировать запросы БД.
  • Альтернативно вы можете выбрать Redis с django-redis при кэшировании бэкэнда. Redis обеспечивает постоянный кэш.

 Смежные вопросы

  • Нет связанных вопросов^_^