为什么Flask速率限制解决方案使用Redis? [英] Why do Flask rate limiting solutions use Redis?
本文介绍了为什么Flask速率限制解决方案使用Redis?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想对我的Flask API进行速率限制.我找到了两种解决方案.
I want to rate limit my Flask API. I found 2 solutions.
- Flask-Limiter 扩展名.
- 使用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.
这意味着您可以:
- 重新启动Web服务器或Web应用程序,并且仍然可以进行速率限制.您不会丢失最后一个请求的记录,因为工作流程被销毁了,并且创建了一个新请求.
- 使用多个Web服务器或Web应用程序.这是因为速率限制状态存储在外部数据存储中,这也解决了共享数据同步和数据争用的问题.您可以根据需要运行任意数量的Web服务器-速率限制在所有服务器之间共享.
- 查看速率限制状态.Redis提供了简单的CLI工具,可让您以即席方式查看当前活动数据,甚至可以监视传入的命令和请求.
- 让Redis管理TTL,LRU等用于速率限制算法.Redis内在地支持这一点.
这篇关于为什么Flask速率限制解决方案使用Redis?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文