forked from mirror/redis
Prepare v5 release.
This commit is contained in:
parent
eeba1d7db1
commit
f5245efa73
|
@ -18,7 +18,5 @@ install:
|
|||
- go get gopkg.in/bsm/ratelimit.v1
|
||||
- go get github.com/onsi/ginkgo
|
||||
- go get github.com/onsi/gomega
|
||||
- go get github.com/garyburd/redigo/redis
|
||||
- mkdir -p $HOME/gopath/src/gopkg.in
|
||||
- mv $HOME/gopath/src/github.com/go-redis/redis $HOME/gopath/src/gopkg.in/redis.v4
|
||||
- cd $HOME/gopath/src/gopkg.in/redis.v4
|
||||
- mv `pwd` $HOME/gopath/src/gopkg.in/redis.v5
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# v5
|
||||
|
||||
- *Important*. ClusterClient and Ring now chose random node/shard when command does not have any keys or command info is not fully available. Also clients use EVAL and EVALSHA keys to pick the right node.
|
|
@ -5,9 +5,7 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
redigo "github.com/garyburd/redigo/redis"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
func benchmarkRedisClient(poolSize int) *redis.Client {
|
||||
|
@ -71,7 +69,7 @@ func BenchmarkRedisGetNil(b *testing.B) {
|
|||
})
|
||||
}
|
||||
|
||||
func benchmarkSetGoRedis(b *testing.B, poolSize, payloadSize int) {
|
||||
func benchmarkSetRedis(b *testing.B, poolSize, payloadSize int) {
|
||||
client := benchmarkRedisClient(poolSize)
|
||||
defer client.Close()
|
||||
|
||||
|
@ -88,93 +86,36 @@ func benchmarkSetGoRedis(b *testing.B, poolSize, payloadSize int) {
|
|||
})
|
||||
}
|
||||
|
||||
func BenchmarkSetGoRedis10Conns64Bytes(b *testing.B) {
|
||||
benchmarkSetGoRedis(b, 10, 64)
|
||||
func BenchmarkSetRedis10Conns64Bytes(b *testing.B) {
|
||||
benchmarkSetRedis(b, 10, 64)
|
||||
}
|
||||
|
||||
func BenchmarkSetGoRedis100Conns64Bytes(b *testing.B) {
|
||||
benchmarkSetGoRedis(b, 100, 64)
|
||||
func BenchmarkSetRedis100Conns64Bytes(b *testing.B) {
|
||||
benchmarkSetRedis(b, 100, 64)
|
||||
}
|
||||
|
||||
func BenchmarkSetGoRedis10Conns1KB(b *testing.B) {
|
||||
benchmarkSetGoRedis(b, 10, 1024)
|
||||
func BenchmarkSetRedis10Conns1KB(b *testing.B) {
|
||||
benchmarkSetRedis(b, 10, 1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetGoRedis100Conns1KB(b *testing.B) {
|
||||
benchmarkSetGoRedis(b, 100, 1024)
|
||||
func BenchmarkSetRedis100Conns1KB(b *testing.B) {
|
||||
benchmarkSetRedis(b, 100, 1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetGoRedis10Conns10KB(b *testing.B) {
|
||||
benchmarkSetGoRedis(b, 10, 10*1024)
|
||||
func BenchmarkSetRedis10Conns10KB(b *testing.B) {
|
||||
benchmarkSetRedis(b, 10, 10*1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetGoRedis100Conns10KB(b *testing.B) {
|
||||
benchmarkSetGoRedis(b, 100, 10*1024)
|
||||
func BenchmarkSetRedis100Conns10KB(b *testing.B) {
|
||||
benchmarkSetRedis(b, 100, 10*1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetGoRedis10Conns1MB(b *testing.B) {
|
||||
benchmarkSetGoRedis(b, 10, 1024*1024)
|
||||
func BenchmarkSetRedis10Conns1MB(b *testing.B) {
|
||||
benchmarkSetRedis(b, 10, 1024*1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetGoRedis100Conns1MB(b *testing.B) {
|
||||
benchmarkSetGoRedis(b, 100, 1024*1024)
|
||||
}
|
||||
|
||||
func benchmarkSetRedigo(b *testing.B, poolSize, payloadSize int) {
|
||||
pool := &redigo.Pool{
|
||||
Dial: func() (redigo.Conn, error) {
|
||||
return redigo.DialTimeout("tcp", ":6379", time.Second, time.Second, time.Second)
|
||||
},
|
||||
MaxActive: poolSize,
|
||||
MaxIdle: poolSize,
|
||||
}
|
||||
defer pool.Close()
|
||||
|
||||
value := string(bytes.Repeat([]byte{'1'}, payloadSize))
|
||||
|
||||
b.ResetTimer()
|
||||
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
conn := pool.Get()
|
||||
if _, err := conn.Do("SET", "key", value); err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
conn.Close()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func BenchmarkSetRedigo10Conns64Bytes(b *testing.B) {
|
||||
benchmarkSetRedigo(b, 10, 64)
|
||||
}
|
||||
|
||||
func BenchmarkSetRedigo100Conns64Bytes(b *testing.B) {
|
||||
benchmarkSetRedigo(b, 100, 64)
|
||||
}
|
||||
|
||||
func BenchmarkSetRedigo10Conns1KB(b *testing.B) {
|
||||
benchmarkSetRedigo(b, 10, 1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetRedigo100Conns1KB(b *testing.B) {
|
||||
benchmarkSetRedigo(b, 100, 1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetRedigo10Conns10KB(b *testing.B) {
|
||||
benchmarkSetRedigo(b, 10, 10*1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetRedigo100Conns10KB(b *testing.B) {
|
||||
benchmarkSetRedigo(b, 100, 10*1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetRedigo10Conns1MB(b *testing.B) {
|
||||
benchmarkSetRedigo(b, 10, 1024*1024)
|
||||
}
|
||||
|
||||
func BenchmarkSetRedigo100Conns1MB(b *testing.B) {
|
||||
benchmarkSetRedigo(b, 100, 1024*1024)
|
||||
func BenchmarkSetRedis100Conns1MB(b *testing.B) {
|
||||
benchmarkSetRedis(b, 100, 1024*1024)
|
||||
}
|
||||
|
||||
func BenchmarkRedisSetGetBytes(b *testing.B) {
|
||||
|
|
|
@ -6,10 +6,10 @@ import (
|
|||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal"
|
||||
"gopkg.in/redis.v4/internal/errors"
|
||||
"gopkg.in/redis.v4/internal/hashtag"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
"gopkg.in/redis.v5/internal/errors"
|
||||
"gopkg.in/redis.v5/internal/hashtag"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
// ClusterOptions are used to configure a cluster client and should be
|
||||
|
|
|
@ -13,8 +13,8 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v4/internal/hashtag"
|
||||
"gopkg.in/redis.v5"
|
||||
"gopkg.in/redis.v5/internal/hashtag"
|
||||
)
|
||||
|
||||
type clusterScenario struct {
|
||||
|
|
|
@ -7,10 +7,9 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-redis/redis/internal"
|
||||
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v4/internal/proto"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
"gopkg.in/redis.v5/internal/proto"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("Cmd", func() {
|
||||
|
|
|
@ -5,8 +5,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal"
|
||||
"gopkg.in/redis.v4/internal/errors"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
"gopkg.in/redis.v5/internal/errors"
|
||||
)
|
||||
|
||||
func readTimeout(timeout time.Duration) time.Duration {
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("Commands", func() {
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var client *redis.Client
|
||||
|
|
|
@ -3,7 +3,7 @@ package redis
|
|||
import (
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
func (c *baseClient) Pool() pool.Pooler {
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
func benchmarkPoolGetPut(b *testing.B, poolSize int) {
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"net"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal/proto"
|
||||
"gopkg.in/redis.v5/internal/proto"
|
||||
)
|
||||
|
||||
const defaultBufSize = 4096
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
|
||||
"gopkg.in/bsm/ratelimit.v1"
|
||||
|
||||
"gopkg.in/redis.v4/internal"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
var _ = Describe("ConnPool", func() {
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"gopkg.in/redis.v4/internal/errors"
|
||||
"gopkg.in/redis.v5/internal/errors"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
"io"
|
||||
"strconv"
|
||||
|
||||
ierrors "gopkg.in/redis.v4/internal/errors"
|
||||
ierrors "gopkg.in/redis.v5/internal/errors"
|
||||
)
|
||||
|
||||
type MultiBulkParse func(*Reader, int64) (interface{}, error)
|
||||
|
|
|
@ -7,7 +7,8 @@ import (
|
|||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"gopkg.in/redis.v4/internal/proto"
|
||||
|
||||
"gopkg.in/redis.v5/internal/proto"
|
||||
)
|
||||
|
||||
var _ = Describe("Reader", func() {
|
||||
|
|
|
@ -6,7 +6,8 @@ import (
|
|||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"gopkg.in/redis.v4/internal/proto"
|
||||
|
||||
"gopkg.in/redis.v5/internal/proto"
|
||||
)
|
||||
|
||||
var _ = Describe("WriteBuffer", func() {
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("ScanIterator", func() {
|
||||
|
|
|
@ -14,7 +14,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -94,7 +94,7 @@ var _ = AfterSuite(func() {
|
|||
|
||||
func TestGinkgoSuite(t *testing.T) {
|
||||
RegisterFailHandler(Fail)
|
||||
RunSpecs(t, "gopkg.in/redis.v4")
|
||||
RunSpecs(t, "gopkg.in/redis.v5")
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"net"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
type Options struct {
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"net"
|
||||
"strconv"
|
||||
|
||||
"gopkg.in/redis.v4/internal/proto"
|
||||
"gopkg.in/redis.v5/internal/proto"
|
||||
)
|
||||
|
||||
// Implements proto.MultiBulkParse
|
||||
|
|
|
@ -4,8 +4,8 @@ import (
|
|||
"sync"
|
||||
"sync/atomic"
|
||||
|
||||
"gopkg.in/redis.v4/internal/errors"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal/errors"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
// Pipeline implements pipelining as described in
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("Pipelining", func() {
|
||||
|
|
|
@ -6,8 +6,8 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
var _ = Describe("pool", func() {
|
||||
|
|
|
@ -5,9 +5,9 @@ import (
|
|||
"net"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal"
|
||||
"gopkg.in/redis.v4/internal/errors"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
"gopkg.in/redis.v5/internal/errors"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
// PubSub implements Pub/Sub commands as described in
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("PubSub", func() {
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
var _ = Describe("races", func() {
|
||||
|
|
8
redis.go
8
redis.go
|
@ -1,12 +1,12 @@
|
|||
package redis // import "gopkg.in/redis.v4"
|
||||
package redis // import "gopkg.in/redis.v5"
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"gopkg.in/redis.v4/internal"
|
||||
"gopkg.in/redis.v4/internal/errors"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
"gopkg.in/redis.v5/internal/errors"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
// Redis nil reply, .e.g. when key does not exist.
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("Client", func() {
|
||||
|
|
8
ring.go
8
ring.go
|
@ -9,10 +9,10 @@ import (
|
|||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal"
|
||||
"gopkg.in/redis.v4/internal/consistenthash"
|
||||
"gopkg.in/redis.v4/internal/hashtag"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
"gopkg.in/redis.v5/internal/consistenthash"
|
||||
"gopkg.in/redis.v5/internal/hashtag"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
var errRingShardsDown = errors.New("redis: all ring shards are down")
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("Redis Ring", func() {
|
||||
|
|
|
@ -8,8 +8,8 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"gopkg.in/redis.v4/internal"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
)
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("Sentinel", func() {
|
||||
|
|
8
tx.go
8
tx.go
|
@ -4,10 +4,10 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
|
||||
"gopkg.in/redis.v4/internal"
|
||||
ierrors "gopkg.in/redis.v4/internal/errors"
|
||||
"gopkg.in/redis.v4/internal/pool"
|
||||
"gopkg.in/redis.v4/internal/proto"
|
||||
"gopkg.in/redis.v5/internal"
|
||||
ierrors "gopkg.in/redis.v5/internal/errors"
|
||||
"gopkg.in/redis.v5/internal/pool"
|
||||
"gopkg.in/redis.v5/internal/proto"
|
||||
)
|
||||
|
||||
// Redis transaction failed.
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"gopkg.in/redis.v4"
|
||||
"gopkg.in/redis.v5"
|
||||
)
|
||||
|
||||
var _ = Describe("Tx", func() {
|
||||
|
|
Loading…
Reference in New Issue