skip to navigation
skip to content

django-redis-ratelimit 0.1.1

A fixed window rate limiting based on Redis

A fixed window rate limiting based on Redis


Requirements

  • Python >= 3.6
  • Django >= 1.11
  • Redis

Installation

To install django-redis-ratelimit, simply:

$ pip install django-redis-ratelimit

NB! django-redis-ratelimit requires a running Redis server. See Redis’s quickstart for installation instructions.

Getting started

First, add the middleware to your settings.py:

MIDDLEWARE = [
    # ...

    'redis_ratelimit.middleware.RateLimitMiddleware',
]

this will make sure that end user sees the HTTP 429 response.

Next, apply the ratelimit decorator to the view:

from django.http import HttpResponse
from redis_ratelimit import ratelimit

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

Memory requirements

For this example we will assume that each key takes up roughly 250 bytes and each value is 4 bytes:

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

License

MIT

 
File Type Py Version Uploaded on Size
django-redis-ratelimit-0.1.1.tar.gz (md5) Source 2017-11-01 3KB
django_redis_ratelimit-0.1.1-py2.py3-none-any.whl (md5) Python Wheel py2.py3 2017-11-01 5KB