ofekshenawa
f711eb0f62
feat(cluster): Implement Request and Response Policy Based Routing in Cluster Mode ( #3422 )
...
* Add search module builders and tests (#1 )
* Add search module builders and tests
* Add tests
* Use builders and Actions in more clean way
* Update search_builders.go
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
* Update search_builders.go
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
* feat(routing): add internal request/response policy enums
* feat: load the policy table in cluster client (#4 )
* feat: load the policy table in cluster client
* Remove comments
* modify Tips and command pplicy in commandInfo (#5 )
* centralize cluster command routing in osscluster_router.go and refactor osscluster.go (#6 )
* centralize cluster command routing in osscluster_router.go and refactor osscluster.go
* enalbe ci on all branches
* Add debug prints
* Add debug prints
* FIX: deal with nil policy
* FIX: fixing clusterClient process
* chore(osscluster): simplify switch case
* wip(command): ai generated clone method for commands
* feat: implement response aggregator for Redis cluster commands
* feat: implement response aggregator for Redis cluster commands
* fix: solve concurrency errors
* fix: solve concurrency errors
* return MaxRedirects settings
* remove locks from getCommandPolicy
* Handle MOVED errors more robustly, remove cluster reloading at exectutions, ennsure better routing
* Fix: supports Process hook test
* Fix: remove response aggregation for single shard commands
* Add more preformant type conversion for Cmd type
* Add router logic into processPipeline
---------
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com >
* remove thread debugging code
* remove thread debugging code && reject commands with policy that cannot be used in pipeline
* refactor processPipline and cmdType enum
* remove FDescribe from cluster tests
* Add tests
* fix aggregation test
* fix mget test
* fix mget test
* remove aggregateKeyedResponses
* added scaffolding for the req-resp manager
* added default policies for the search commands
* split command map into module->command
* cleanup, added logic to refresh the cache
* added reactive cache refresh
* revert cluster refresh
* fixed lint
* addresed first batch of comments
* rewrote aggregator implementations with atomic for native or nearnative primitives
* addressed more comments, fixed lint
* added batch aggregator operations
* fixed lint
* updated batch aggregator, fixed extractcommandvalue
* fixed lint
* added batching to aggregateResponses
* fixed deadlocks
* changed aggregator logic, added error params
* added preemptive return to the aggregators
* more work on the aggregators
* updated and and or aggregators
* fixed lint
* added configurable policy resolvers
* slight refactor
* removed the interface, slight refactor
* change func signature from cmdName to cmder
* added nil safety assertions
* few small refactors
* added read only policies
* removed leftover prints
* Rebased to master, resolved comnflicts
* fixed lint
* updated gha
* fixed tests, minor consistency refactor
* preallocated simple errors
* changed numeric aggregators to use float64
* speculative test fix
* Update command.go
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
* Update main_test.go
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
* Add static shard picker
* Fix nil value handling in command aggregation
* Modify the Clone method to return a shallow copy
* Add clone method to digest command
* Optimize keyless command routing to respect ShardPicker policy
* Remove MGET references
* Fix MGET aggregation to map individual values to keys across shards
* Add clone method to hybrid search commands
* Undo changes in route keyless test
* remove comments
* Add test for DisableRoutingPolicies option
* Add Routing Policies Comprehensive Test Suite and Fix multi keyed aggregation for different step
---------
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com >
Co-authored-by: Hristo Temelski <hristo.temelski@redis.com >
2025-11-28 11:46:23 +02:00
Nedyalko Dyakov
68d8c59557
chore(release): v9.17.1 ( #3617 )
...
* add release notes
* update version to 9.17.1
2025-11-26 12:20:20 +02:00
Nedyalko Dyakov
5b0b228a37
chore(release): v9.17.0 ( #3604 )
...
* update release notes
* update readme
* update version number
* cleanup release notes
* fix checkMinIdle
2025-11-19 19:53:02 +02:00
Nedyalko Dyakov
f1956565ee
chore(release): 9.16.0 ( #3557 )
...
* notes
* bump version
2025-10-23 18:08:39 +03:00
Hristo Temelski
7aa4a60667
update gomods to align them with the latest beta ( #3539 )
...
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
2025-10-21 11:28:04 +03:00
Hristo Temelski
a44df88257
version 9.15.1, used to retract itself and 9.15.0 ( #3537 )
...
* version 9.15.1, used to retract itself and 9.15.0
* added retract to the submodules
* revert submodules retracts as they are not needed
2025-09-27 23:33:54 +03:00
Hristo Temelski
819f01b489
retract wrongly released version ( #3533 )
2025-09-27 15:38:46 +01:00
Hristo Temelski
7405cff430
depreciate 9.15.0 ( #3532 )
2025-09-27 02:17:21 +03:00
Hristo Temelski
8b38e27f97
release: 9.15.0-beta.2 ( #3531 )
2025-09-26 19:40:07 +03:00
Nedyalko Dyakov
0dcfeefea7
chore(release): 9.15.0-beta.1 ( #3514 )
2025-09-10 23:02:16 +03:00
Hristo Temelski
c11a704481
chore(release): v9.14.0 ( #3512 )
2025-09-10 14:33:08 +03:00
Nedyalko Dyakov
52bda7a35a
chore(release): 9.13.0 ( #3500 )
2025-09-03 14:52:32 +03:00
Nedyalko Dyakov
7b4a537aef
chore(release): 9.12.1, failover client buffer size fixes ( #3469 )
2025-08-11 18:58:21 +03:00
Nedyalko Dyakov
b7838dc4e7
chore(release): 9.12.0 / redis 8.2 ( #3464 )
2025-08-05 16:50:25 +03:00
Nedyalko Dyakov
f006e941d9
chore(release): 9.12.0-beta.1 ( #3460 )
2025-08-04 15:00:37 +03:00
Nedyalko Dyakov
0decfdc6ed
chore(release): v9.11.0 ( #3416 )
...
* chore(release): update version to 9.11.0
* chore(release): Add Release Notes for v9.11.0
2025-06-24 14:05:24 +03:00
Nedyalko Dyakov
75e8370a6f
chore(release): Update release notes and versions for v9.10.0 ( #3395 )
2025-06-06 18:30:30 +03:00
Nedyalko Dyakov
c935f96148
release(go-redis): v9.9.0 ( #3390 )
...
* release(go-redis): v9.9.0
- Add release notes
- Update dependencies and version.go
* chore(release-notes) Update release notes
2025-05-27 19:00:07 +03:00
Nedyalko Dyakov
c0be87ec5b
chore(release): sync master after releasing V9.8.0 ( #3365 )
...
* Bump version to 9.8.0-beta1
Update README.md
* Feature more prominently how to enable OpenTelemetry instrumentation (#3316 )
* Sync master with v9.8.0-beta.1 (#3322 )
* DOC-4464 examples for llen, lpop, lpush, lrange, rpop, and rpush (#3234 )
* DOC-4464 examples for llen, lpop, lpush, lrange, rpop, and rpush
* DOC-4464 improved variable names
---------
Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com >
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com >
* update pubsub.go (#3329 )
* use 8.0-RC1 (#3330 )
* drop ft.profile that was never enabled (#3323 )
* chore(deps): bump rojopolis/spellcheck-github-actions (#3336 )
Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions ) from 0.47.0 to 0.48.0.
- [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases )
- [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.47.0...0.48.0 )
---
updated-dependencies:
- dependency-name: rojopolis/spellcheck-github-actions
dependency-version: 0.48.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix FT.Search Limit argument and add CountOnly argument for limit 0 0 (#3338 )
* Fix Limit argument and add CountOnly argument
* Add test and Documentation
* Update search_commands.go
---------
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
* fix add missing command in interface (#3344 )
* Use DB option in NewFailoverClusterClient (#3342 )
* DOC-5102 added CountOnly search example for docs (#3345 )
* Add integration tests for Redis 8 behavior changes in Redis Search (#3337 )
* Add integration tests for Redis 8 behavior changes in Redis Search
* Undo changes in ft.search limit
* Fix BM25 as the default scorer test
* Add more tests and comments on deprecated params
* Update search_commands.go
* Remove deprication comment for nostopwords
---------
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
* Use correct slot for COUNTKEYSINSLOT command (#3327 )
* Ensure context isn't exhausted via concurrent query as opposed to sentinel query (#3334 )
* fix: better error handling when fetching the master node from the sentinels (#3349 )
* Better error handling when fetching the master node from the sentinels
* fix error message generation
* close the errCh to not block
* use len over errCh
* docs: fix documentation comments (#3351 )
* DOC-5111 added hash search examples (#3357 )
* fix: Fix panic caused when arg is nil (#3353 )
* Update README.md, use redis discord guild (#3331 )
* use redis discord guild
* add line in CONTRIBUTING.md
* update with badges similar to rest of the libraries. update url
* updated with direct invite link
* fix discord link in CONTRIBUTING.md
* fix stackoverflow tag
---------
Co-authored-by: Elena Kolevska <elena-kolevska@users.noreply.github.com >
* update HExpire command documentation (#3355 )
* update HExpire command documentation
* Apply suggestions from code review
Format the links in the documentation. Add missing documentation.
---------
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
* feat: func isEmptyValue support time.Time (#3273 )
* fix:func isEmptyValue support time.Time
* fix: Improve HSet unit tests
* feat: Improve HSet unit tests
* fix: isEmptyValue Struct only support time.Time
* test(hset): add empty custom struct test
---------
Co-authored-by: Guo Hui <gh7396@gmail.com >
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com >
* fix: `PubSub` isn't concurrency-safe (#3360 )
* migrate golangci-lint config to v2 format (#3354 )
* migrate golangci-lint config to v2 format
* chore: skip CI on migration [skip ci]
* Bump golangci version
* Address several golangci-lint/staticcheck warnings
* change staticchecks settings
* chore(ci): Use redis 8 rc2 image. (#3361 )
* chore(ci): Use redis 8 rc2 image
* test(timeseries): fix duplicatePolicy check
* feat(options): panic when options are nil (#3363 )
Client creation should panic when options are nil.
* chore(release): Update version to v9.8.0
- update version in relevant places
- add RELEASE-NOTES.md to keep track of release notes
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: Nikolay Dubina <nikolay.dubina.pub@gmail.com >
Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com >
Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com >
Co-authored-by: Liu Shuang <liushuangbill@outlook.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com >
Co-authored-by: Bulat Khasanov <afti@yandex.ru >
Co-authored-by: Naveen Prashanth <78990165+gnpaone@users.noreply.github.com >
Co-authored-by: Glenn <alohaglenn@icloud.com >
Co-authored-by: frankj <frankxjkuang@gmail.com >
Co-authored-by: Elena Kolevska <elena-kolevska@users.noreply.github.com >
Co-authored-by: Hui <gh73962@gmail.com >
Co-authored-by: Guo Hui <gh7396@gmail.com >
Co-authored-by: fukua95 <fukua95@gmail.com >
2025-05-07 14:40:49 +03:00
Nedyalko Dyakov
cb3aa19618
Sync master with v9.8.0-beta.1 ( #3322 )
2025-03-25 12:25:35 +02:00
ofekshenawa
15059395a1
Support new hash commands: HGETDEL, HGETEX, HSETEX ( #3305 )
2025-03-24 14:03:26 +02:00
Nedyalko Dyakov
ebe11d06ca
feat: Enable CI for Redis CE 8.0 ( #3274 )
...
* 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 >
2025-02-28 12:49:00 +02:00
Ali Error
37accb4b28
fix: nil pointer dereferencing in writeArg ( #3271 )
...
* fixed bug with nil dereferencing in writeArg, added hset struct example, added tests
* removed password from example
* added omitempty
* reverted xxhash versioning
* reverted xxhash versioning
* removed password
* removed password
---------
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com >
2025-02-20 16:54:11 +02:00