ecc985b75b
fix(osscluster): typo
2025-06-24 09:30:25 +03:00
2bbcdaa32b
chore(txPipeline): refactor slottedCommands impl
2025-06-23 18:00:12 +03:00
50d1484dc4
Merge branch 'master' into ndyakov/keyless-commands-tx-pipeline
2025-06-23 11:49:51 +03:00
884f9970c0
DOC-5229 probabilistic data type examples ( #3413 )
...
* DOC-5078 added basic vector set examples
* DOC-5078 formatting and extra comments
* DOC-5078 fixed nondeterministic test
* wip(tests): run doctests for vector sets on redis 8 only
* DOC-5229 added probabilistic data type examples
---------
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com >
2025-06-23 11:49:36 +03:00
e642856ed3
chore(deps): bump rojopolis/spellcheck-github-actions ( #3414 )
...
Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions ) from 0.49.0 to 0.51.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.49.0...0.51.0 )
---
updated-dependencies:
- dependency-name: rojopolis/spellcheck-github-actions
dependency-version: 0.51.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>
2025-06-23 11:49:12 +03:00
450ba06408
Merge branch 'master' into ndyakov/keyless-commands-tx-pipeline
2025-06-20 12:08:38 +03:00
7d97cc1c59
feat: optimize connection pool waitTurn ( #3412 )
2025-06-20 12:07:14 +03:00
49906ee0fe
fix(keylessCommands): Add list of keyless commands
...
Add list of keyless Commands based on the Commands output
for redis 8
2025-06-19 16:17:53 +03:00
c368e7e01f
chore(test): Fix ring test
2025-06-19 14:12:14 +03:00
185ec01461
fix(cmdSlot): Add shortlist of keyless cmds
2025-06-19 12:27:14 +03:00
0f66cd002d
fix(cmdSlot): Add preferred random slot
2025-06-19 12:07:36 +03:00
4320079ad7
chore(test): Add tests for keyless cmds and txpipeline
2025-06-19 11:55:57 +03:00
fffa489c04
fix(txpipeline): extract only keyed cmds from all cmds
2025-06-19 11:52:24 +03:00
fd2f7044cb
Merge branch 'master' into ndyakov/keyless-commands-tx-pipeline
2025-06-19 11:42:16 +03:00
2a32680c8a
fix(txpipeline): keyless commands should take the slot of the keyed commands
2025-06-19 11:40:45 +03:00
f4358acffc
[CAE-1046] fix(loading): cache the loaded flag for slave nodes ( #3410 )
...
* fix(loading): cache the loaded flag for slave nodes
* fix(lint): make linter happy
2025-06-18 15:18:51 +03:00
4c635cc563
fix(txpipeline): should return error on multi/exec on multiple slots [CAE-1028] ( #3408 )
...
* fix(txpipeline): should return error on multi/exec on multiple slots
* fix(txpipeline): test normal tx pipeline behaviour
* chore(err): Extract crossslot err and add test
* fix(txpipeline): short curcuit the tx if there are no commands
* chore(tests): validate keys are in different slots
2025-06-18 14:18:00 +03:00
68717412c9
chore(ci): update CI redis builds ( #3407 )
2025-06-16 18:28:58 +03:00
82b00cc520
chore: remove a redundant method ( #3401 )
...
Signed-off-by: fukua95 <fukua95@gmail.com >
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
2025-06-16 16:55:23 +03:00
e2295c7129
test: refactor TestBasicCredentials using table-driven tests ( #3406 )
...
* test: refactor TestBasicCredentials using table-driven tests
* Included additional edge cases:
- Empty passwords
- Special characters
- Long strings
- Unicode characters
2025-06-16 11:23:58 +03:00
eb40ac8328
perf: reduce unnecessary memory allocation ( #3399 )
...
Signed-off-by: fukua95 <fukua95@gmail.com >
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
2025-06-09 11:59:58 +03:00
0f40ae3ff2
fix: check if the shard exists to avoid returning nil ( #3396 )
...
Signed-off-by: fukua95 <fukua95@gmail.com >
2025-06-09 11:06:21 +03:00
858ecda7fd
fix: insert entry during iterating over a map ( #3398 )
...
Signed-off-by: fukua95 <fukua95@gmail.com >
2025-06-09 11:03:18 +03:00
75e8370a6f
chore(release): Update release notes and versions for v9.10.0 ( #3395 )
extra/rediscmd/v9.10.0
extra/redisprometheus/v9.10.0
extra/redisotel/v9.10.0
v9.10.0
extra/rediscensus/v9.10.0
2025-06-06 18:30:30 +03:00
98b224cf7d
DOC-5078 vector set examples ( #3394 )
2025-06-06 16:25:35 +03:00
4e22885ca1
feat: support vectorset ( #3375 )
...
* feat: support vectorset
* fix: char encoding error
* use `any` instread of `interface{}`
* update vectorset API
Signed-off-by: fukua95 <fukua95@gmail.com >
* refact: MapStringFloat64Cmd -> VectorInfoSliceCmd
Signed-off-by: fukua95 <fukua95@gmail.com >
* update:
* the type of vector attribute: string -> VectorAttributeMarshaller
* Add a new API VRemAttr
* mark the APIs are experimental
Signed-off-by: fukua95 <fukua95@gmail.com >
* trigger CI again
Signed-off-by: fukua95 <fukua95@gmail.com >
* rename a API: VRemAttr -> VClearAttributes
Signed-off-by: fukua95 <fukua95@gmail.com >
* add test
Signed-off-by: fukua95 <fukua95@gmail.com >
* feat(vectorset): improve VSetAttr API and add comprehensive test suite
- Simplify VSetAttr to accept interface{} with automatic JSON marshalling
- Remove VectorAttributeMarshaller interface for simpler API
- Add comprehensive unit tests for all vectorset commands
---------
Signed-off-by: fukua95 <fukua95@gmail.com >
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com >
2025-06-05 11:35:45 +03:00
c609828c9b
chore(tests): add the missing NewFloatSliceResult for testing ( #3393 )
2025-06-03 13:27:54 +03:00
a7772e47c0
Update RELEASE-NOTES.md ( #3391 )
2025-05-28 10:30:31 +03:00
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
extra/redisprometheus/v9.9.0
v9.9.0
extra/rediscmd/v9.9.0
extra/redisotel/v9.9.0
extra/rediscensus/v9.9.0
2025-05-27 19:00:07 +03:00
cb1968cad6
feat(ring): add GetShardClients and GetShardClientForKey methods to Ring for shard access ( #3388 )
...
* feat: expose shard information in redis.Ring
- Add GetShards() method to retrieve a list of active shard clients.
- Add GetShardByKey(key string) method to get the shard client for a specific key.
- These methods enable users to manage Pub/Sub operations more effectively by accessing shard-specific clients.
* rename GetShardClients and GetShardClientForKey
---------
Co-authored-by: DengY11 <212294929@qq.com >
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
2025-05-27 18:04:04 +03:00
86d418f940
feat: Introducing StreamingCredentialsProvider for token based authentication ( #3320 )
...
* wip
* update documentation
* add streamingcredentialsprovider in options
* fix: put back option in pool creation
* add package level comment
* Initial re authentication implementation
Introduces the StreamingCredentialsProvider as the CredentialsProvider
with the highest priority.
TODO: needs to be tested
* Change function type name
Change CancelProviderFunc to UnsubscribeFunc
* add tests
* fix race in tests
* fix example tests
* wip, hooks refactor
* fix build
* update README.md
* update wordlist
* update README.md
* refactor(auth): early returns in cred listener
* fix(doctest): simulate some delay
* feat(conn): add close hook on conn
* fix(tests): simulate start/stop in mock credentials provider
* fix(auth): don't double close the conn
* docs(README): mark streaming credentials provider as experimental
* fix(auth): streamline auth err proccess
* fix(auth): check err on close conn
* chore(entraid): use the repo under redis org
2025-05-27 16:25:20 +03:00
28a3c97409
chore: set the default value for the options.protocol
in the init()
of options
( #3387 )
...
* chore: set the default value for the `options.protocol` in the `init()` of `options`
Signed-off-by: fukua95 <fukua95@gmail.com >
* add a test
Signed-off-by: fukua95 <fukua95@gmail.com >
---------
Signed-off-by: fukua95 <fukua95@gmail.com >
2025-05-27 14:53:41 +03:00
66b61c432c
chore(deps): bump rojopolis/spellcheck-github-actions ( #3389 )
...
Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions ) from 0.48.0 to 0.49.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.48.0...0.49.0 )
---
updated-dependencies:
- dependency-name: rojopolis/spellcheck-github-actions
dependency-version: 0.49.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>
2025-05-27 14:52:52 +03:00
d7ba255394
fix: prevent routing reads to loading slave nodes ( #3370 )
...
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
2025-05-21 13:58:21 +03:00
b67455e099
xinfo-groups: support nil lag in XINFO GROUPS ( #3369 )
...
* xinfo-groups: support nil lag in XINFO GROUPS
* Add test
* docs: clarify XInfoGroup.Lag field behavior with Nil values
* docs: clarify XInfoGroup.Lag field behavior
2025-05-21 13:57:58 +03:00
03c2c0b088
chore: remove unused param ( #3384 )
...
Signed-off-by: fukua95 <fukua95@gmail.com >
2025-05-20 14:11:53 +03:00
c149644da7
Unit test for pool acquisition timeout ( #3381 )
...
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
2025-05-19 19:46:19 +03:00
bc70b52b42
perf: avoid unnecessary copy operation ( #3376 )
...
* optime: reduce unnecessary copy operations
* add a comment
* trigger CI without code changes, because the bug of docker
* add comments
2025-05-19 19:24:37 +03:00
ba26e35a2c
Export pool errors for public consumption ( #3380 )
2025-05-19 19:23:10 +03:00
80c373be46
chore: remove unused param ( #3382 )
...
* chore: remove unused param
Signed-off-by: fukua95 <fukua95@gmail.com >
* chore: rename a unused param to `_`
Signed-off-by: fukua95 <fukua95@gmail.com >
---------
Signed-off-by: fukua95 <fukua95@gmail.com >
2025-05-19 19:22:51 +03:00
3af2cc5783
chore: optimize function ReplaceSpaces
( #3383 )
...
* chore: optimize function `ReplaceSpaces`
Signed-off-by: fukua95 <fukua95@gmail.com >
* trigger CI again because the bug of docker
Signed-off-by: fukua95 <fukua95@gmail.com >
* trigger CI again because the bug of docker
Signed-off-by: fukua95 <fukua95@gmail.com >
---------
Signed-off-by: fukua95 <fukua95@gmail.com >
2025-05-19 19:21:17 +03:00
43e7fb5eef
test(util): add unit tests for Atoi, ParseInt, ParseUint, and ParseFloat ( #3377 )
2025-05-15 14:53:54 +03:00
6c6dddcf7c
feat: add ParseFailoverURL ( #3362 )
...
* add ParseFailoverURL for FailoverOptions
* fix 2 warning
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
2025-05-15 14:53:40 +03:00
42c32846e6
utils: export ParseFloat and MustParseFloat wrapping internal utils ( #3371 )
...
* utils: expose ParseFloat via new public utils package
* add tests for special float values in vector search
2025-05-09 12:24:36 +03:00
f174acba52
ci(redis): update to 8.0.1 ( #3372 )
2025-05-08 15:32:47 +03:00
8ba559ca5d
feat: add connection waiting statistics ( #2804 )
...
Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com >
2025-05-07 15:54:26 +03:00
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
4cedb5c037
feat: add more stats for otel ( #2930 )
...
Signed-off-by: rfyiamcool <rfyiamcool@163.com >
Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com >
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com >
2025-05-07 11:14:48 +03:00
6d788cbcd4
chore(deps): bump golangci/golangci-lint-action from 7.0.0 to 8.0.0 ( #3366 )
...
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action ) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases )
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v7.0.0...v8.0.0 )
---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
dependency-version: 8.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 08:34:14 +03:00
d54e848055
feat(options): panic when options are nil ( #3363 )
...
Client creation should panic when options are nil.
2025-04-30 09:33:40 +03:00