* 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>
* 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
* 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
* run go fix ./...
Signed-off-by: Tiago Peczenyj <tpeczenyj@weborama.com>
* run make fmt
Signed-off-by: Tiago Peczenyj <tpeczenyj@weborama.com>
* fix go vet ./... issues
* Update README.md
Reorder imports with the rules defined in the Makefile
as if we run `make fmt`
* run gofumpt -w .
* update Makefile to use gofumpt instead gofmt
* increment makefile
* format test
* format tests
Signed-off-by: Tiago Peczenyj <tpeczenyj@weborama.com>
---------
Signed-off-by: Tiago Peczenyj <tpeczenyj@weborama.com>
Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
* Allowing for redis on a specified port
* updating the readme
---------
Co-authored-by: Vladimir Mihailenco <vladimir.webdev@gmail.com>
Co-authored-by: Monkey <golang@88.com>
There is problem with `eval` and `evalsha` commands.
`COMMAND INFO eval` returns first key position equals `0`.
After that, redis ring chooses `eval` as a value for sharding.
They, if you try to delete created value, ring may choose another shard
and delete won't work.
Eval command should be parsed, to be sharded properly, according to
redis specs: http://redis.io/commands/command .
I've introduced a new flag in the `RingOptions`, which will enable new
behavior: `EnableKeyLocationParsing`.
If it is enabled, `cmdFirstKey` will try to get key position using
`cmd.getFirstKeyPos()`. This function is defined for `eval` and
`evalsha` commands.
If it has parameters, it will return `3`, otherwise it will return `0`.