func BenchmarkPoolGet(b *testing.B) { b.StopTimer() p := redis.Pool{Dial: redistest.Dial, MaxIdle: 2} c := p.Get() if err := c.Err(); err != nil { b.Fatal(err) } c.Close() defer p.Close() b.StartTimer() for i := 0; i < b.N; i++ { c = p.Get() c.Close() } }
func startGoroutines(p *redis.Pool, cmd string, args ...interface{}) chan error { errs := make(chan error, 10) for i := 0; i < cap(errs); i++ { go func() { c := p.Get() _, err := c.Do(cmd, args...) errs <- err c.Close() }() } // Wait for goroutines to block. time.Sleep(time.Second / 4) return errs }