redis:拨tcp [REDIS ADDRESS]连接:连接被拒绝

时间:2018-04-18 23:03:53

标签: docker go redis redigo

我正在使用redigo和docker一起使用。我有一个处理传入事件的服务器,并使用redis进行速率限制。每100k +连接中就有一个,或者我得到以下错误:

redis: dial tcp IP ADDRESS: connect: connection refused

使用docker-compose配置全部在docker内部。我有哨兵发给我这些错误,我想知道是否有任何调整/设置我可以做删除/减少此错误

我的redigo配置

redis := &redis.Pool{
    MaxActive: idleConnections,
    MaxIdle:   idleConnections,
    Wait:      true,
    Dial: func() (redis.Conn, error) {
        return redis.Dial("tcp", address, options...)
    },
}

1 个答案:

答案 0 :(得分:1)

您可以使用某种指数退避重试拨号:

Dial: func() (redis.Conn, error) {
    c, err := redis.Dial("tcp", address, options...)
    for retries := 0; err != nil && retries < 5; retries++ {
        time.Sleep((50 << retries) * time.Millisecond)
        c, err = redis.Dial("tcp", address, options...)
    }
    return c, err
},