rate/rate.go
func NewRedisCounter(client *redis.Client, key string, bucketSize, retention time.Duration) Counter {
	return &redisCounter{
		client:     client,
		key:        key,
		bucketSize: bucketSize,
		retention:  retention,
	}
}
func NewRedisCounter(client *redis.Client, key string, bucketSize, retention time.Duration) Counter {
	return &redisCounter{
		client:     client,
		key:        key,
		bucketSize: bucketSize,
		retention:  retention,
	}
}
// NewRedisCounter returns a new redis-based counter