基于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处理类类型参数的方式的参数   java安卓中间层admob在logcat中导致大量GC_FOR_ALLOC释放消息   java Vert。x Http请求未将参数分配为配置   java中多线程的输出不正确   如何减少java本地线程的冗余   java不完全分块结果   使用OpenCv时java中的Mat数据类型不受支持错误   Java中的正则表达式不工作,而同一正则表达式在shell中工作   java如何从数组中删除元素?   JDBCJava。sql。SQLException:[Microsoft][ODBC Microsoft Access驱动程序]操作必须使用可更新的查询   java如何以对角线打印字符串变量的字符?   SonarQube 5.2的java自定义插件生成NoClassDefFoundError   macos使用Java应用程序打开浏览器选项卡