Files
bouncer/internal/config/redis.go
William Petit ad4f334bc2
All checks were successful
Cadoles/bouncer/pipeline/head This commit looks good
Cadoles/bouncer/pipeline/pr-master This commit looks good
refactor: remove redis direct references from proxy/admin servers
2025-08-13 16:54:47 +02:00

47 lines
2.0 KiB
Go

package config
import "time"
const (
RedisModeSimple = "simple"
RedisModeSentinel = "sentinel"
RedisModeCluster = "cluster"
)
type RedisConfig struct {
Adresses InterpolatedStringSlice `yaml:"addresses"`
Master InterpolatedString `yaml:"master"`
ReadTimeout *InterpolatedDuration `yaml:"readTimeout"`
WriteTimeout *InterpolatedDuration `yaml:"writeTimeout"`
DialTimeout *InterpolatedDuration `yaml:"dialTimeout"`
LockMaxRetries InterpolatedInt `yaml:"lockMaxRetries"`
RouteByLatency InterpolatedBool `yaml:"routeByLatency"`
ContextTimeoutEnabled InterpolatedBool `yaml:"contextTimeoutEnabled"`
MaxRetries InterpolatedInt `yaml:"maxRetries"`
PingInterval *InterpolatedDuration `yaml:"pingInterval"`
PoolSize InterpolatedInt `yaml:"poolSize"`
PoolTimeout *InterpolatedDuration `yaml:"poolTimeout"`
MinIdleConns InterpolatedInt `yaml:"minIdleConns"`
MaxIdleConns InterpolatedInt `yaml:"maxIdleConns"`
ConnMaxIdleTime *InterpolatedDuration `yaml:"connMaxIdleTime"`
ConnMaxLifetime *InterpolatedDuration `yaml:"connMaxLifeTime"`
}
func NewDefaultRedisConfig() RedisConfig {
return RedisConfig{
Adresses: InterpolatedStringSlice{"localhost:6379"},
Master: "",
ReadTimeout: NewInterpolatedDuration(30 * time.Second),
WriteTimeout: NewInterpolatedDuration(30 * time.Second),
DialTimeout: NewInterpolatedDuration(30 * time.Second),
PoolTimeout: NewInterpolatedDuration(31 * time.Second),
LockMaxRetries: 10,
MaxRetries: 3,
PingInterval: NewInterpolatedDuration(30 * time.Second),
ContextTimeoutEnabled: true,
RouteByLatency: true,
ConnMaxIdleTime: NewInterpolatedDuration(1 * time.Minute),
ConnMaxLifetime: NewInterpolatedDuration(5 * time.Minute),
}
}