Django REST框架 - 如何使用Memcached进行令牌认证

时间:2015-06-29 13:35:37

标签: django memcached django-rest-framework django-authentication django-cache

我正在为几个DRF视图使用TokenAuthentication。如果密钥存在于缓存中,则视图代码本身具有使用memcached的优化逻辑 - 通过减少数据库查询来加速。但是,我看到对于来自电话(客户端)的每个API请求,服务器仍然至少进行一次查询 - Postgres authtoken_token select用于验证用户是否发送了authtoken

有没有办法避免这种情况,因为authtoken很少改变 - 通过将其保存在缓存中?

我在settings.py中使用以下内容,但我不认为这有助于我的案例

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

1 个答案:

答案 0 :(得分:0)

  • 您可以在memcache中设置令牌时将TIMEOUT设置为None,这样缓存的令牌将永不过期(直到memcache服务器重启/逐出)。或者,您可以设置超时的持续时间,以最大限度地减少数据库查询。
  • 或者,您可以在缓存后端时选择带django-redis的Redis。 Redis提供持久缓存选项。