为了账号安全,请及时绑定邮箱和手机立即绑定

去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 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信