* chore: extract benchmark tests
* wip
* enable pubsub tests
* enable ring tests
* stop tests with build redis from source
* start all tests
* mix of makefile and action
* add sentinel configs
* fix example test
* stop debug on re
* wip
* enable gears for redis 7.2
* wip
* enable sentinel, they are expected to fail
* fix: linter configuration
* chore: update re versions
* return older redis enterprise version
* add basic codeql
* wip: increase timeout, focus only sentinel tests
* sentinels with docker network host
* enable all tests
* fix flanky test
* enable example tests
* tidy docker compose
* add debug output
* stop shutingdown masters
* don't test sentinel for re
* skip unsuported addscores
* Update README
bump go version in CI
* Update README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update CONTRIBUTING.md
add information about new test setup
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 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>
* 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: 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
* DOC-4331 added full text query examples
* DOC-4331 made tests deterministic with sort
---------
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
* Add tests for unified config in Redis 8
* WIP: fix reading FT.CONFIG with RESP3
* add more tests
* use search-timeout
* move deprecated warnings on the bottom
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>
* introduce github workflow for ci similar to the one in redis-py
use prerelease for 8.0-M4
* Enable osscluster tests in CI
* Add redis major version env
Enable filtering test per redis major version
Fix test for FT.SEARCH WITHSCORE, the default scorer
has changed.
fix Makefile syntax
remove filter from github action
fix makefile
use the container name in Makefile
* remove 1.20 from doctests
* self review, cleanup, add comments
* add comments, reorder prints, add default value for REDIS_MAJOR_VERSION
* Add 8.0m3 image in docker compose
* Add new key `io-thread` in client info
Redis 8.0 introduces new key `io-thread` in the response
for client info. The key needs to be parsed. If an unknown key
is observed, the client will return an error.
* improve readibility
* Revert "Add 8.0m3 image in docker compose"
This reverts commit 787c41f42917fb7d3ca3471d9941304695a9b3c8.
* add dockers directory to gitignore
* DOC-4450 added hgetall and hvals doc examples
* DOC-4449 added hgetall and hvals doc examples
* DOC-4449 rewrote to avoid Collect and Keys functions (not available in test version of Go)
* DOC-4449 replaced slices.Sort function with older alternative
* DOC-4449 removed another instance of slices.Sort
* DOC-4449 fixed bugs in tests
* DOC-4449 try sort.Strings() for sorting key lists
---------
Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com>
* SortByWithCount FTSearchOptions fix
* FTSearch test fix
* Another FTSearch test fix
* Another FTSearch test fix
---------
Co-authored-by: Christopher Golling <Chris.Golling@aexp.com>
* Only check latencies once every 10 seconds with `routeByLatency`
`routeByLatency` currently checks latencies any time a server returns
a MOVED or READONLY reply. When a shard is down, the ClusterClient
chooses to issue the request to a random server, which returns a MOVED
reply. This causes a state refresh and a latency update on all servers.
This can lead to significant ping load to clusters with a large number
of clients.
This introduces logic to ping only once every 10 seconds, only
performing a latency update on a node during the `GC` function if the
latency was set later than 10 seconds ago.
Fixes https://github.com/redis/go-redis/issues/2782
* use UnixNano instead of Unix for better precision
---------
Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>