没有Redis的烧瓶速率限制

时间:2016-06-21 16:11:16

标签: python flask redis rate-limiting

我想对我的烧瓶API进行评级。 我找到了2份文件。

一个是简单的烧瓶限制器:https://flask-limiter.readthedocs.io/en/stable/

其次是使用redis:http://flask.pocoo.org/snippets/70/

当我能够在没有Redis的情况下根据远程地址对请求进行速率限制时, Redis 有什么重要意义(如第一份文档中所述)。

1 个答案:

答案 0 :(得分:9)

Redis允许您将速率限制状态存储在持久存储中。

这意味着你可以:

  1. 重新启动您的Web服务器或Web应用程序,但仍然具有速率限制功能。由于工作流程被销毁并且正在创建新工作流程,您不会丢失上次请求的记录。
  2. 使用多个Web服务器或Web应用程序。这是因为速率限制状态存储在外部数据存储中,这也解决了共享数据同步和数据争用的问题。您可以根据需要运行任意数量的Web服务器 - 速率限制在所有这些服务器之间共享。
  3. 查看速率限制状态。 Redis提供简单的CLI工具,允许您以临时方式查看当前活动数据,甚至监控传入的命令和请求。
  4. 让Redis管理速率限制算法的TTL,LRU等。 Redis本质上支持这一点。