This app has been build using
rate-limit-redis library which will block connections from a client after surpassing certain amount of requests (default: 10) per time (default: 10 sec)
The application will return after each request the following headers. That will let the user know how many requests they have remaining before the run over the limit.
X-RateLimit-Limit: 10 X-RateLimit-Remaining: 9
On the 10th run server should return an HTTP status code of 429 Too Many Requests
"PEXPIRE", "MULTI", "DEL", "PTTL", "EXEC", "DECR", "INCR"
git clone https://github.com/redis-developer/basic-redis-rate-limiting-demo-nodejs/ # copy file and set proper data inside cp .env.example .env # install dependencies npm install # run docker compose or install redis manually docker network create global docker-compose up -d --build npm run dev
To make deploys work, you need to create free account in https://redislabs.com/try-free/ and get Redis' instance informations - REDIS_ENDPOINT_URI and REDIS_PASSWORD. You must pass them as environmental variables (in .env file or by server config, like
Heroku Config Variables).