python - 为什么 Flask 限速解决方案使用 Redis?

标签 python flask redis rate-limiting

我想对我的 Flask API 进行速率限制。我找到了 2 个解决方案。

  1. Flask-Limiter扩展名。
  2. 来自使用 Redis 的 Flask 网站的片段:http://flask.pocoo.org/snippets/70/

Flask-Limiter 可以在没有Redis 的情况下根据远程地址对请求进行限速,Redis 的意义是什么?

最佳答案

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

这意味着您可以:

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

关于python - 为什么 Flask 限速解决方案使用 Redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37949507/

相关文章:

redis - 如何在后台运行 Redis?

python - qpython/pandas 从 kdb 接收空字符的问题

python - Flask/Python - 处理下拉菜单以打开不同的 HTML 页面

python - 我如何访问 QuickFix 的通用组 API?

python - 如何检测 jinja 中的 Debug模式?

python - Peewee 的 Flask 仅在重新启动时获取新数据

redis - redis、logstash 和 Elasticsearch 的解析问题

python - Heroku 上的 RQScheduler

python - plt.hist() vs np.histogram() - 意想不到的结果

python - Django - pip grappelli 没有良好的 Python 安装