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), } }