基于redis的python速率限制器。

python-redis-rate-limit的Python项目详细描述


https://travis-ci.org/EvoluxBR/python-redis-rate-limit.svg?branch=masterhttps://img.shields.io/pypi/v/python-redis-rate-limit.svg

这个lib提供了在 redis=2.6.0。

支持的Python版本:2.7、3.5、3.6

示例:每秒10个请求

fromredis_rate_limitimportRateLimit,TooManyRequeststry:withRateLimit(resource='users_list',client='192.168.0.10',max_requests=10):return'200 OK'exceptTooManyRequests:return'429 Too Many Requests'

示例:每分钟600个请求

fromredis_rate_limitimportRateLimit,TooManyRequeststry:withRateLimit(resource='users_list',client='192.168.0.10',max_requests=600,expire=60):return'200 OK'exceptTooManyRequests:return'429 Too Many Requests'

示例:每小时100个请求

fromredis_rate_limitimportRateLimit,TooManyRequeststry:withRateLimit(resource='users_list',client='192.168.0.10',max_requests=100,expire=3600):return'200 OK'exceptTooManyRequests:return'429 Too Many Requests'

示例:您还可以设置一个工厂,以便以后使用它

fromredis_rate_limitimportRateLimiter,TooManyRequestslimiter=RateLimiter(resource='users_list',max_requests=100,expire=3600)try:withlimiter.limit(client='192.168.0.10'):return'200 OK'exceptTooManyRequests:return'429 Too Many Requests'

示例:您还可以传递可选的redis池

importredisfromredis_rate_limitimportRateLimit,TooManyRequestsredis_pool=redis.ConnectionPool(host='127.0.0.1',port=6379,db=0)try:withRateLimit(resource='users_list',client='192.168.0.10',max_requests=10,redis_pool=redis_pool):return'200 OK'exceptTooManyRequests:return'429 Too Many Requests'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JList侦听器找不到符号   多点触摸跨平台java应用程序(Windows、Mac和Linux(Ubuntu)(可能是Android))   在UnitTest中找不到java类加载器资源   java当我尝试在Eclipse中运行我的minecraft mod时,我总是遇到这个错误,这是什么意思?   内部有一个同步块的静态方法,在java中阻止整个类?   不支持java操作:具有BillableStatus的费用在采购中应具有AccountBasedExpenseLineDetail行的CustomerRef   java运行时常量池GC集合   java无法解析配置“:app:\u debugApk”的所有依赖项。找不到名为“default”的配置   在GCP计算引擎中托管Neo4j的java   java如何从BroadcastReceiver更新片段选项卡?   线程“main”组织中的java异常。冬眠注释异常:@org。冬眠注释。表引用未知表:ProductForPractice   在Java/Groovy中嵌入处理   java Android REST教程/示例项目   java我可以在同一测试中在一个模拟器上启动应用程序,在另一个模拟器上启动移动浏览器吗?   java如何更改通知横幅的方向?   安卓 Java帮助实现Firebase授权   if else之后的rs.next()中出现java错误?