基于redis的固定窗口速率限制
django-redis-ratelimit的Python项目详细描述
基于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
许可证
麻省理工学院