Express API Rate Limiter Redis Code
// Express API Rate Limiter using Redis Bucket Algorithm
const rateLimit = require('express-rate-limit');
const RedisStore = require('rate-limit-redis');
const { createClient } = require('redis');
const redisClient = createClient({ url: 'redis://redis:6379' });
redisClient.connect();
const apiLimiter = rateLimit({
store: new RedisStore({ sendCommand: (...args) => redisClient.sendCommand(args) }),
windowMs: 60 * 1000, // 1 minute
max: 100 // limit each IP to 100 requests per windowMs
});
Suggested & Related Reading
Explore related engineering guides from Kenneth D'Silva:
-
GraphQL vs. REST API Performance Optimization
Query depth limiting and complexity analysis.
-
Implementing a Web Application Firewall (WAF)
API gateway WAF expression rules.