rest - 计算 API 服务中 API 调用的有效方法

标签 rest django-rest-framework relational-database fastapi

我是在 DRF 的背景下问这个问题的,但这也可以推广。我们正在维护一个 API 服务,我们正在为 1K+ 的实时请求提供服务。在当前场景中,我们正在实时计算 API 调用,即我们正在更新针对每个 API 调用的用户的 API 调用计数的数据库列。
但是有没有有效的方法呢?例如,在其他地方记录 API 调用,然后在几分钟后更新数据库?或者这对我们目前正在做的事情好吗?有多大规模的 API 服务可能会处理这个问题?网络上没有针对此问题的具体内容。

最佳答案

Redis 是一种内存键值数据存储,因此可以非常快速地检索数据。实现 也非常简单使用 Redis 进行速率限制并验证 API 调用次数 . IE。

  • 存储一个 key ,如用户的 IP 地址
  • 增加从该 IP 发出的调用数

  • Redis Link
    Redis 实验室 Link

    关于rest - 计算 API 服务中 API 调用的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67360281/

    相关文章:

    java.lang.NoClassDefFoundError : Could not initialize class org. jose4j.jwa.AlgorithmFactoryFactory JsonWebSignature getCompactSerialization 错误

    python - 如何使用 PUT 方法编辑序列化数据

    django - 如何使用 Django REST Framework 返回自定义 json 响应?

    mysql - 创建父子表,child 是否需要自己的主 id 列?

    mysql - 关系中字段类型的逻辑

    rest - 节流或限制 Kotlin CoRoutine 计数

    c# - WebApi 2 HttpPut、HttpDelete、HttpPost 不起作用 - HTTP 错误 405.0 - 不允许方法

    .net - 为用户创建数据库沙箱/测试区域以运行假设场景

    ruby-on-rails - 在 Rails 编辑操作表单中,隐藏表单字段

    django - 不将 Django Admin 与 Django Rest Framework 一起使用的原因是什么