diff --git a/cmd_args.go b/cmd_args.go index bce1256..7e36f26 100644 --- a/cmd_args.go +++ b/cmd_args.go @@ -1,7 +1,7 @@ package redisson import ( - goredis "github.com/redis/go-redis/v9" + goredis "github.com/go-redis/redis/v8" ) const KeepTTL = goredis.KeepTTL diff --git a/cmd_reply.go b/cmd_reply.go index 6966345..f9ac52e 100644 --- a/cmd_reply.go +++ b/cmd_reply.go @@ -6,7 +6,7 @@ import ( "net" "time" - goredis "github.com/redis/go-redis/v9" + goredis "github.com/go-redis/redis/v8" "github.com/sandwich-go/rueidis" "github.com/sandwich-go/rueidis/rueidiscompat" ) @@ -364,7 +364,7 @@ type StringStringMapCmd interface { func newStringStringMapCmd(res rueidis.RedisResult, args ...interface{}) StringStringMapCmd { val, err := res.AsStrMap() - cmd := goredis.NewMapStringStringCmd(context.Background(), args...) + cmd := goredis.NewStringStringMapCmd(context.Background(), args...) cmd.SetErr(wrapError(err)) cmd.SetVal(val) return cmd @@ -378,7 +378,7 @@ type StringIntMapCmd interface { func newStringIntMapCmd(res rueidis.RedisResult, args ...interface{}) StringIntMapCmd { val, err := res.AsIntMap() - cmd := goredis.NewMapStringIntCmd(context.Background(), args...) + cmd := goredis.NewStringIntMapCmd(context.Background(), args...) cmd.SetErr(wrapError(err)) cmd.SetVal(val) return cmd @@ -707,7 +707,7 @@ func newXInfoConsumersCmd(res rueidis.RedisResult, stream string, group string) } if attr, ok := info["idle"]; ok { idle, _ := attr.AsInt64() - consumer.Idle = time.Duration(idle) * time.Millisecond + consumer.Idle = idle } val = append(val, consumer) } diff --git a/go.mod b/go.mod index dde1b6c..1c156c5 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,8 @@ go 1.18 require ( github.com/coreos/go-semver v0.3.0 + github.com/go-redis/redis/v8 v8.11.5 github.com/prometheus/client_golang v1.11.0 - github.com/redis/go-redis/v9 v9.0.3 github.com/sandwich-go/rueidis v0.1.12 github.com/smartystreets/goconvey v1.7.2 ) diff --git a/go.sum b/go.sum index ce53a2b..7729bc0 100644 --- a/go.sum +++ b/go.sum @@ -8,8 +8,6 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao= -github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -19,12 +17,15 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI= +github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -70,6 +71,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -94,8 +97,6 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/redis/go-redis/v9 v9.0.3 h1:+7mmR26M0IvyLxGZUHxu4GiBkJkVDid0Un+j4ScYu4k= -github.com/redis/go-redis/v9 v9.0.3/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= github.com/sandwich-go/rueidis v0.1.12 h1:8ZksyYJPESep8YlBnz5woRxF+Tj84wVdsCttp9eFVnc= github.com/sandwich-go/rueidis v0.1.12/go.mod h1:IsXMwxHDgHbixhfVR36KBE/8TdCcR07Igenwb5AnHIA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -162,6 +163,7 @@ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/option.go b/option.go index 87118d2..adfd8ee 100644 --- a/option.go +++ b/option.go @@ -5,7 +5,7 @@ import "time" //go:generate optiongen --new_func=NewConf --xconf=true --empty_composite_nil=true --usage_tag_name=usage func ConfOptionDeclareWithDefault() interface{} { return map[string]interface{}{ - "Resp": RESP(RESP2), // @MethodComment(RESP版本) + "Resp": RESP(RESP3), // @MethodComment(RESP版本) "Name": "", // @MethodComment(Redis客户端名字) "MasterName": "", // @MethodComment(Redis Sentinel模式下,master名字) "EnableMonitor": true, // @MethodComment(是否开启监控) diff --git a/redis_resp.go b/redis_resp.go index b37be5f..58ad42c 100644 --- a/redis_resp.go +++ b/redis_resp.go @@ -10,7 +10,7 @@ import ( "time" "github.com/coreos/go-semver/semver" - goredis "github.com/redis/go-redis/v9" + goredis "github.com/go-redis/redis/v8" ) type RESP = string diff --git a/redis_resp2.go b/redis_resp2.go index c6414a0..ab65828 100644 --- a/redis_resp2.go +++ b/redis_resp2.go @@ -2,11 +2,10 @@ package redisson import ( "context" - "fmt" "sync" "time" - goredis "github.com/redis/go-redis/v9" + goredis "github.com/go-redis/redis/v8" ) type resp2 struct { @@ -16,18 +15,18 @@ type resp2 struct { func connectResp2(v ConfVisitor, h handler) (*resp2, error) { var opts = &goredis.UniversalOptions{ - Addrs: v.GetAddrs(), - DB: v.GetDB(), - Username: v.GetUsername(), - Password: v.GetPassword(), - ReadTimeout: v.GetReadTimeout(), - WriteTimeout: v.GetWriteTimeout(), - PoolSize: v.GetConnPoolSize(), - MinIdleConns: v.GetMinIdleConns(), - ConnMaxLifetime: v.GetConnMaxAge(), - ConnMaxIdleTime: v.GetIdleConnTimeout(), - PoolTimeout: v.GetConnPoolTimeout(), - MasterName: v.GetMasterName(), + Addrs: v.GetAddrs(), + DB: v.GetDB(), + Username: v.GetUsername(), + Password: v.GetPassword(), + ReadTimeout: v.GetReadTimeout(), + WriteTimeout: v.GetWriteTimeout(), + PoolSize: v.GetConnPoolSize(), + MinIdleConns: v.GetMinIdleConns(), + MaxConnAge: v.GetConnMaxAge(), + IdleTimeout: v.GetIdleConnTimeout(), + PoolTimeout: v.GetConnPoolTimeout(), + MasterName: v.GetMasterName(), } var cmd goredis.UniversalClient if v.GetCluster() { @@ -421,17 +420,7 @@ func (r *resp2) HMSet(ctx context.Context, key string, values ...interface{}) Bo } func (r *resp2) HRandField(ctx context.Context, key string, count int, withValues bool) StringSliceCmd { - if !withValues { - return r.cmd.HRandField(ctx, key, count) - } - // TODO fix goredis - result := r.cmd.HRandFieldWithValues(ctx, key, count) - var val []string - for _, v := range result.Val() { - val = append(val, v.Key) - val = append(val, v.Value) - } - return goredis.NewStringSliceResult(val, result.Err()) + return r.cmd.HRandField(ctx, key, count, withValues) } func (r *resp2) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) ScanCmd { @@ -734,14 +723,7 @@ func (r *resp2) Command(ctx context.Context) CommandsInfoCmd { } func (r *resp2) ConfigGet(ctx context.Context, parameter string) SliceCmd { - // TODO: fix goredis - result := r.cmd.ConfigGet(ctx, parameter) - var val []interface{} - for k, v := range result.Val() { - val = append(val, k) - val = append(val, v) - } - return goredis.NewSliceResult(val, result.Err()) + return r.cmd.ConfigGet(ctx, parameter) } func (r *resp2) ConfigResetStat(ctx context.Context) StatusCmd { @@ -909,27 +891,27 @@ func (r *resp2) toZs(members ...Z) []*Z { } func (r *resp2) ZAdd(ctx context.Context, key string, members ...Z) IntCmd { - return r.cmd.ZAdd(ctx, key, members...) + return r.cmd.ZAdd(ctx, key, r.toZs(members...)...) } func (r *resp2) ZAddNX(ctx context.Context, key string, members ...Z) IntCmd { - return r.cmd.ZAddNX(ctx, key, members...) + return r.cmd.ZAddNX(ctx, key, r.toZs(members...)...) } func (r *resp2) ZAddXX(ctx context.Context, key string, members ...Z) IntCmd { - return r.cmd.ZAddXX(ctx, key, members...) + return r.cmd.ZAddXX(ctx, key, r.toZs(members...)...) } func (r *resp2) ZAddCh(ctx context.Context, key string, members ...Z) IntCmd { - return r.cmd.ZAddArgs(ctx, key, goredis.ZAddArgs{Ch: true, Members: members}) + return r.cmd.ZAddCh(ctx, key, r.toZs(members...)...) } func (r *resp2) ZAddNXCh(ctx context.Context, key string, members ...Z) IntCmd { - return r.cmd.ZAddArgs(ctx, key, goredis.ZAddArgs{NX: true, Ch: true, Members: members}) + return r.cmd.ZAddNXCh(ctx, key, r.toZs(members...)...) } func (r *resp2) ZAddXXCh(ctx context.Context, key string, members ...Z) IntCmd { - return r.cmd.ZAddArgs(ctx, key, goredis.ZAddArgs{XX: true, Ch: true, Members: members}) + return r.cmd.ZAddXXCh(ctx, key, r.toZs(members...)...) } func (r *resp2) ZAddArgs(ctx context.Context, key string, args ZAddArgs) IntCmd { @@ -961,15 +943,15 @@ func (r *resp2) ZDiffStore(ctx context.Context, destination string, keys ...stri } func (r *resp2) ZIncr(ctx context.Context, key string, member Z) FloatCmd { - return r.cmd.ZAddArgsIncr(ctx, key, goredis.ZAddArgs{Members: []Z{member}}) + return r.cmd.ZIncr(ctx, key, &member) } func (r *resp2) ZIncrNX(ctx context.Context, key string, member Z) FloatCmd { - return r.cmd.ZAddArgsIncr(ctx, key, goredis.ZAddArgs{Members: []Z{member}, NX: true}) + return r.cmd.ZIncrNX(ctx, key, &member) } func (r *resp2) ZIncrXX(ctx context.Context, key string, member Z) FloatCmd { - return r.cmd.ZAddArgsIncr(ctx, key, goredis.ZAddArgs{Members: []Z{member}, XX: true}) + return r.cmd.ZIncrXX(ctx, key, &member) } func (r *resp2) ZIncrBy(ctx context.Context, key string, increment float64, member string) FloatCmd { @@ -1005,17 +987,7 @@ func (r *resp2) ZPopMin(ctx context.Context, key string, count ...int64) ZSliceC } func (r *resp2) ZRandMember(ctx context.Context, key string, count int, withScores bool) StringSliceCmd { - if !withScores { - return r.cmd.ZRandMember(ctx, key, count) - } - // TODO fix goredis - result := r.cmd.ZRandMemberWithScores(ctx, key, count) - var val []string - for _, v := range result.Val() { - val = append(val, fmt.Sprintf("%v", v.Member)) - val = append(val, fmt.Sprintf("%v", v.Score)) - } - return goredis.NewStringSliceResult(val, result.Err()) + return r.cmd.ZRandMember(ctx, key, count, withScores) } func (r *resp2) ZRange(ctx context.Context, key string, start, stop int64) StringSliceCmd { @@ -1223,12 +1195,11 @@ func (r *resp2) XRevRangeN(ctx context.Context, stream string, start, stop strin } func (r *resp2) XTrim(ctx context.Context, key string, maxLen int64) IntCmd { - return r.cmd.XTrimMaxLen(ctx, key, maxLen) + return r.cmd.XTrim(ctx, key, maxLen) } func (r *resp2) XTrimApprox(ctx context.Context, key string, maxLen int64) IntCmd { - // TODO use limit - return r.cmd.XTrimMaxLenApprox(ctx, key, maxLen, 0) + return r.cmd.XTrimApprox(ctx, key, maxLen) } func (r *resp2) XTrimMaxLen(ctx context.Context, key string, maxLen int64) IntCmd { @@ -1308,7 +1279,7 @@ func (r *resp2) Set(ctx context.Context, key string, value interface{}, expirati } func (r *resp2) SetEX(ctx context.Context, key string, value interface{}, expiration time.Duration) StatusCmd { - return r.cmd.SetEx(ctx, key, value, expiration) + return r.cmd.SetEX(ctx, key, value, expiration) } func (r *resp2) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) BoolCmd {