go-redis/redis_rate
go-redis/redis_rate has 1,055 GitHub stars and 106 forks. GitHot measured +2 in 7 days. Last checked 2026-11-11 01:29 UTC. Last push 2026-10-05.
Rate limiting for go-redis
Measured star growth
- in 24h
- Update delayed
- in 7 days
- +2
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalRate limiting for go-redis
:heart: Uptrace.dev - distributed traces, logs, and errors in one place
This package is based on rwz/redis-gcra and implements GCRA (aka leaky bucket) for rate limiting based on Redis. The code requires Redis version 3.2 or newer since it relies on replicate_commands feature.
Installation
redis_rate supports 2 last Go versions and requires a Go version with modules support. So make sure to initialize a Go module:
go mod init github.com/my/repo
And then install redisrate/v10 (note **_v10** in the import; omitting it is a popular mistake):
go get github.com/go-redis/redis_rate/v10
Example
package redis_rate_test
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
"github.com/go-redis/redis_rate/v10"
)
func ExampleNewLimiter() {
ctx := context.Background()
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
})
_ = rdb.FlushDB(ctx).Err()
limiter := redis_rate.NewLimiter(rdb)
res, err := limiter.Allow(ctx, "project:123", redis_rate.PerSecond(10))
if err != nil {
panic(err)
}
fmt.Println("allowed", res.Allowed, "remaining", res.Remaining)
// Output: allowed 1 remaining 9
}
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,670 starspublic-apis/public-apis
A collective list of free APIs
498,063 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
450,822 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,314 stars