A fixed window rate limiter
go get github.com/m7mdkamal/global-rate-limiter
func main() {
redisClient := redis.NewClient(&redis.Options{})
rateLimiter := ratelimiter.NewRateLimiter(redisClient, time.Hour, 1000) // 1000 request per 1 hour
_ = rateLimiter.Incr() // returns error on limit reached
}
- Configure redis prefix
- Write tests
- Write redis scripts in lua