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: InterpolatedDuration(30 * time.Second), WriteTimeout: InterpolatedDuration(30 * time.Second), DialTimeout: InterpolatedDuration(30 * time.Second), LockMaxRetries: 10, MaxRetries: 3, PingInterval: InterpolatedDuration(30 * time.Second), ContextTimeoutEnabled: true, RouteByLatency: true, } }