Files
warmbly/internal/pkg/climit/climit.go
T
2026-01-17 14:11:14 +00:00

24 lines
368 B
Go

package climit
import (
"context"
"time"
"github.com/redis/go-redis/v9"
)
func Limit(ctx context.Context, r *redis.Client, key string, ttl time.Duration) (int64, error) {
val, err := r.Incr(ctx, key).Result()
if err != nil {
return 0, err
}
if val == 1 {
if err := r.Expire(ctx, key, ttl).Err(); err != nil {
return 0, err
}
}
return val, nil
}