mirror of
https://github.com/redis/go-redis.git
synced 2025-04-17 20:17:02 +03:00
* Add guidance on unstable RESP3 support for RediSearch commands to README (#3177) * Add UnstableResp3 to docs * Add RawVal and RawResult to wordlist * Explain more about SetVal * Add UnstableResp to wordlist * Eliminate redundant dial mutex causing unbounded connection queue contention (#3088) * Eliminate redundant dial mutex causing unbounded connection queue contention * Dialer connection timeouts unit test --------- Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com> * SortByWithCount FTSearchOptions fix (#3201) * SortByWithCount FTSearchOptions fix * FTSearch test fix * Another FTSearch test fix * Another FTSearch test fix --------- Co-authored-by: Christopher Golling <Chris.Golling@aexp.com> * Fix race condition in clusterNodes.Addrs() (#3219) Resolve a race condition in the clusterNodes.Addrs() method. Previously, the method returned a reference to a string slice, creating the potential for concurrent reads by the caller while the slice was being modified by the garbage collection process. Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com> * chore: fix some comments (#3226) Signed-off-by: zhuhaicity <zhuhai@52it.net> Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com> * fix(aggregate, search): ft.aggregate bugfixes (#3263) * fix: rearange args for ft.aggregate apply should be before any groupby or sortby * improve test * wip: add scorer and addscores * enable all tests * fix ftsearch with count test * make linter happy * Addscores is available in later redisearch releases. For safety state it is available in redis ce 8 * load an apply seem to break scorer and addscores * 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 * fix: flaky ClientKillByFilter test (#3268) * Reinstate read-only lock on hooks access in dialHook (#3225) * use limit when limitoffset is zero (#3275) * remove redis 8 comments * update package versions * use latest golangci-lint * fix(search&aggregate):fix error overwrite and typo #3220 (#3224) * fix (#3220) * LOAD has NO AS param(https://redis.io/docs/latest/commands/ft.aggregate/) * fix typo: WITHCOUT -> WITHCOUNT * fix (#3220): * Compatible with known RediSearch issue in test * fix (#3220) * fixed the calculation bug of the count of load params * test should not include special condition * return errors when they occur --------- Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com> Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com> * Recognize byte slice for key argument in cluster client hash slot computation (#3049) Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com> Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com> --------- Signed-off-by: zhuhaicity <zhuhai@52it.net> Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com> Co-authored-by: LINKIWI <LINKIWI@users.noreply.github.com> Co-authored-by: Cgol9 <chris.golling@verizon.net> Co-authored-by: Christopher Golling <Chris.Golling@aexp.com> Co-authored-by: Shawn Wang <62313353+shawnwgit@users.noreply.github.com> Co-authored-by: ZhuHaiCheng <zhuhai@52it.net> Co-authored-by: herodot <54836727+bitsark@users.noreply.github.com> Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com>
64 lines
1.7 KiB
Go
64 lines
1.7 KiB
Go
package redis_test
|
|
|
|
import (
|
|
. "github.com/bsm/ginkgo/v2"
|
|
. "github.com/bsm/gomega"
|
|
|
|
"github.com/redis/go-redis/v9"
|
|
)
|
|
|
|
var _ = Describe("UniversalClient", func() {
|
|
var client redis.UniversalClient
|
|
|
|
AfterEach(func() {
|
|
if client != nil {
|
|
Expect(client.Close()).To(Succeed())
|
|
}
|
|
})
|
|
|
|
It("should connect to failover servers", func() {
|
|
Skip("Flaky Test")
|
|
client = redis.NewUniversalClient(&redis.UniversalOptions{
|
|
MasterName: sentinelName,
|
|
Addrs: sentinelAddrs,
|
|
})
|
|
Expect(client.Ping(ctx).Err()).NotTo(HaveOccurred())
|
|
})
|
|
|
|
It("should connect to simple servers", func() {
|
|
client = redis.NewUniversalClient(&redis.UniversalOptions{
|
|
Addrs: []string{redisAddr},
|
|
})
|
|
Expect(client.Ping(ctx).Err()).NotTo(HaveOccurred())
|
|
})
|
|
|
|
It("should connect to clusters", Label("NonRedisEnterprise"), func() {
|
|
client = redis.NewUniversalClient(&redis.UniversalOptions{
|
|
Addrs: cluster.addrs(),
|
|
})
|
|
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())
|
|
})
|
|
})
|