基于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第三方库


热门话题
HTTP标头的java InputStream未终止   java测试SpringWebListener   具有定义的替换编号Java的regex ReplaceAll   在java中使用contains()方法   java在选择查询中使用JoinColumn字段   具有用户的java Start-stop demon不是以给定用户启动   java glBufferData生成GL\u无效\u操作   java中循环代码的循环   Java位无符号移位(>>>>)会产生奇怪的结果   java HQL使用点分隔符从select获取结果   条纹、弹簧、玩耍(或?):使用哪种高性能Java框架?   广播接收机中的java停止服务   java回收器视图占据整个屏幕。不在上面显示我的UI元素   java使MySQL查询更快   java MappedByteBuffer查询   java递归算法问题