mirror of
https://github.com/redis/go-redis.git
synced 2025-04-17 20:17:02 +03:00
fix: add unstableresp3 to cluster client (#3266)
* fix: add unstableresp3 to cluster client * propagate unstableresp3 * proper test that will ignore error, but fail if client panics * add separate test for clusterclient constructor
This commit is contained in:
parent
27f19ea672
commit
d0f921357d
@ -154,7 +154,7 @@ type Options struct {
|
||||
// Add suffix to client name. Default is empty.
|
||||
IdentitySuffix string
|
||||
|
||||
// Enable Unstable mode for Redis Search module with RESP3.
|
||||
// UnstableResp3 enables Unstable mode for Redis Search module with RESP3.
|
||||
UnstableResp3 bool
|
||||
}
|
||||
|
||||
|
@ -94,6 +94,9 @@ type ClusterOptions struct {
|
||||
DisableIndentity bool // Disable set-lib on connect. Default is false.
|
||||
|
||||
IdentitySuffix string // Add suffix to client name. Default is empty.
|
||||
|
||||
// UnstableResp3 enables Unstable mode for Redis Search module with RESP3.
|
||||
UnstableResp3 bool
|
||||
}
|
||||
|
||||
func (opt *ClusterOptions) init() {
|
||||
@ -308,7 +311,8 @@ func (opt *ClusterOptions) clientOptions() *Options {
|
||||
// much use for ClusterSlots config). This means we cannot execute the
|
||||
// READONLY command against that node -- setting readOnly to false in such
|
||||
// situations in the options below will prevent that from happening.
|
||||
readOnly: opt.ReadOnly && opt.ClusterSlots == nil,
|
||||
readOnly: opt.ReadOnly && opt.ClusterSlots == nil,
|
||||
UnstableResp3: opt.UnstableResp3,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -115,6 +115,7 @@ func (o *UniversalOptions) Cluster() *ClusterOptions {
|
||||
|
||||
DisableIndentity: o.DisableIndentity,
|
||||
IdentitySuffix: o.IdentitySuffix,
|
||||
UnstableResp3: o.UnstableResp3,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,4 +38,26 @@ var _ = Describe("UniversalClient", func() {
|
||||
})
|
||||
Expect(client.Ping(ctx).Err()).NotTo(HaveOccurred())
|
||||
})
|
||||
|
||||
It("connect to clusters with UniversalClient and UnstableResp3", Label("NonRedisEnterprise"), func() {
|
||||
client = redis.NewUniversalClient(&redis.UniversalOptions{
|
||||
Addrs: cluster.addrs(),
|
||||
Protocol: 3,
|
||||
UnstableResp3: true,
|
||||
})
|
||||
Expect(client.Ping(ctx).Err()).NotTo(HaveOccurred())
|
||||
a := func() { client.FTInfo(ctx, "all").Result() }
|
||||
Expect(a).ToNot(Panic())
|
||||
})
|
||||
|
||||
It("connect to clusters with ClusterClient and UnstableResp3", Label("NonRedisEnterprise"), func() {
|
||||
client = redis.NewClusterClient(&redis.ClusterOptions{
|
||||
Addrs: cluster.addrs(),
|
||||
Protocol: 3,
|
||||
UnstableResp3: true,
|
||||
})
|
||||
Expect(client.Ping(ctx).Err()).NotTo(HaveOccurred())
|
||||
a := func() { client.FTInfo(ctx, "all").Result() }
|
||||
Expect(a).ToNot(Panic())
|
||||
})
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user