为什么Flask速率限制解决方案使用Redis? [英] Why do Flask rate limiting solutions use Redis?

查看:64
本文介绍了为什么Flask速率限制解决方案使用Redis?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想对我的Flask API进行速率限制.我找到了两种解决方案.

I want to rate limit my Flask API. I found 2 solutions.

  1. Flask-Limiter 扩展名.
  2. 使用Redis的Flask网站上的代码段: http://flask.pocoo.org/snippets/70/

当Flask-Limiter能够在没有Redis的情况下基于远程地址对请求进行速率限制时,Redis的意义何在?

What is the significance of Redis when Flask-Limiter is able to rate limit the request on the basis of remote address without Redis?

推荐答案

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

Redis allows you to store the rate-limiting state in a persistent store.

这意味着您可以:

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

这篇关于为什么Flask速率限制解决方案使用Redis?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆