MCPcopy
hub / github.com/redis/go-redis / setupFailoverConnParams

Function setupFailoverConnParams

sentinel.go:434–503  ·  view source on GitHub ↗
(u *url.URL, o *FailoverOptions)

Source from the content-addressed store, hash-verified

432}
433
434func setupFailoverConnParams(u *url.URL, o *FailoverOptions) (*FailoverOptions, error) {
435 q := queryOptions{q: u.Query()}
436
437 o.MasterName = q.string("master_name")
438 o.ClientName = q.string("client_name")
439 o.RouteByLatency = q.bool("route_by_latency")
440 o.RouteRandomly = q.bool("route_randomly")
441 o.ReplicaOnly = q.bool("replica_only")
442 o.UseDisconnectedReplicas = q.bool("use_disconnected_replicas")
443 o.Protocol = q.int("protocol")
444 o.Username = q.string("username")
445 o.Password = q.string("password")
446 o.MaxRetries = q.int("max_retries")
447 o.MinRetryBackoff = q.duration("min_retry_backoff")
448 o.MaxRetryBackoff = q.duration("max_retry_backoff")
449 o.DialTimeout = q.duration("dial_timeout")
450 o.DialerRetries = q.int("dialer_retries")
451 o.DialerRetryTimeout = q.duration("dialer_retry_timeout")
452 o.ReadTimeout = q.duration("read_timeout")
453 o.WriteTimeout = q.duration("write_timeout")
454 o.ContextTimeoutEnabled = q.bool("context_timeout_enabled")
455 o.PoolFIFO = q.bool("pool_fifo")
456 o.PoolSize = q.int("pool_size")
457 o.MaxConcurrentDials = q.int("max_concurrent_dials")
458 o.MinIdleConns = q.int("min_idle_conns")
459 o.MaxIdleConns = q.int("max_idle_conns")
460 o.MaxActiveConns = q.int("max_active_conns")
461 o.ConnMaxLifetime = q.duration("conn_max_lifetime")
462 if q.has("conn_max_lifetime_jitter") {
463 o.ConnMaxLifetimeJitter = min(q.duration("conn_max_lifetime_jitter"), o.ConnMaxLifetime)
464 }
465 o.ConnMaxIdleTime = q.duration("conn_max_idle_time")
466 o.PoolTimeout = q.duration("pool_timeout")
467 o.DisableIdentity = q.bool("disableIdentity")
468 o.IdentitySuffix = q.string("identitySuffix")
469 o.UnstableResp3 = q.bool("unstable_resp3")
470
471 if q.err != nil {
472 return nil, q.err
473 }
474
475 if tmp := q.string("db"); tmp != "" {
476 db, err := strconv.Atoi(tmp)
477 if err != nil {
478 return nil, fmt.Errorf("redis: invalid database number: %w", err)
479 }
480 o.DB = db
481 }
482
483 addrs := q.strings("addr")
484 for _, addr := range addrs {
485 h, p, err := net.SplitHostPort(addr)
486 if err != nil || h == "" || p == "" {
487 return nil, fmt.Errorf("redis: unable to parse addr param: %s", addr)
488 }
489
490 o.SentinelAddrs = append(o.SentinelAddrs, net.JoinHostPort(h, p))
491 }

Callers 1

setupFailoverConnFunction · 0.85

Calls 7

stringMethod · 0.95
boolMethod · 0.95
intMethod · 0.95
durationMethod · 0.95
hasMethod · 0.95
stringsMethod · 0.95
remainingMethod · 0.95

Tested by

no test coverage detected