基于redis的固定窗口速率限制

django-redis-ratelimit的Python项目详细描述


Build Status

基于redis的固定窗口速率限制


要求

  • python=3.6
  • django>;=1.11
  • redis

安装

要安装Django Redis RateLimit,只需:

$ pip install django-redis-ratelimit

nb!Django Redis RateLimit需要运行的Redis服务器。见 Redis’s quickstart用于 安装说明。

开始

首先,将中间件添加到settings.py

MIDDLEWARE = [
    # ...

    'redis_ratelimit.middleware.RateLimitMiddleware',
]

这将确保最终用户看到http 429响应。

接下来,将ratelimitdecorator应用于视图:

from django.http import HttpResponse
from redis_ratelimit import ratelimit

@ratelimit(rate='5/m')
def index(request):
    return HttpResponse("Hello World!")

内存要求

在这个例子中,我们假设每个键占用大约250字节 每个值是4字节:

250 + 4 * 1 million unique hits = ~254 Megabytes

许可证

麻省理工学院

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

推荐PyPI第三方库


热门话题
java如何通过编程更改安卓中imagebutton的大小   Java Web应用程序中的angularjs路由   以更智能的方式在JUnit5(或其他测试Java库)中使用数组进行参数化   java在16位颜色深度的Graphics2D中绘制时颜色错误   java有可能在需要时从Firebase手动检索数据,以及如何组合查询?   格拉德尔爪哇。lang.NoSuchFieldError:md2   java中的循环乘法表错误   用于检测圆括号的java正则表达式   如果我们使用新字符串(“abcd”),java就是在堆中创建的字符串对象   java有没有办法让JOptionPane下拉菜单为所选选项输出数字?   javasocket与URL网站访问   java如何创建不同数据类型的列表,根据类型迭代并执行不同的操作?   java JSP获取html类型=数字输入字段的值   java Android谷歌地图圈可点击