亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

去Redis加載

去Redis加載

Go
九州編程 2021-09-10 21:19:46
我正在嘗試將 2 億個密鑰加載到 redis 中,通常在大約 3100 萬個密鑰時開始出現錯誤并且不得不停止。我正在使用 golang 和 redis 庫“github.com/garyburd/redigo/redis”我設置了一個連接池:func newPool(server string) *redis.Pool {    return &redis.Pool{        MaxIdle: 3,        MaxActive: 10,        IdleTimeout: 240 * time.Second,        Dial: func () (redis.Conn, error) {            c, err := redis.Dial("tcp", server)            if err != nil {                return nil, err            }            return c, err        },        TestOnBorrow: func(c redis.Conn, t time.Time) error {            _, err := c.Do("PING")            return err        },    }}然后我嘗試使用這個函數用值填充 redis:func RedisServerBatchLoadKeys(rtbExchange string, keys []string){  redisLock.Lock()  defer redisLock.Unlock()  retry := 0  for {    conn := GetConnOrPanic(rtbExchange)    defer conn.Close()    conn.Send("MULTI")    for _, key := range keys {      conn.Send("SET", key, maxCount)      conn.Send("EXPIRE", key, numSecondsExpire)    }    _, err := conn.Do("EXEC")    if err == nil {      break    } else if !(err == io.EOF) {      CheckRedisError(err, rtbExchange, "Could not load batch")    } else {      retry ++    }    if retry >= 10 {      CheckRedisError(err, rtbExchange, "Could not load batch - 10 retries")    }  }}我收到了很多錯誤,例如:讀取 tcp 10.249.15.194:6379:由對等方重置連接撥打 tcp 10.249.15.194:6379:連接被拒絕redis#RedisError : EOF我是在做一些根本錯誤的事情還是我必須添加更多錯誤檢查(除了我添加的 EOF)。謝謝,
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號