1
0
mirror of https://github.com/redis/go-redis.git synced 2025-06-02 08:21:36 +03:00

2660 Commits

Author SHA1 Message Date
Nedyalko Dyakov
a7772e47c0
Update RELEASE-NOTES.md (#3391) 2025-05-28 10:30:31 +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
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
Yi Deng
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
Nedyalko Dyakov
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
fukua95
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
dependabot[bot]
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
ofekshenawa
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
ofekshenawa
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
fukua95
03c2c0b088
chore: remove unused param (#3384)
Signed-off-by: fukua95 <fukua95@gmail.com>
2025-05-20 14:11:53 +03:00
LINKIWI
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
fukua95
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
LINKIWI
ba26e35a2c
Export pool errors for public consumption (#3380) 2025-05-19 19:23:10 +03:00
fukua95
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
fukua95
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
Amir Salehi
43e7fb5eef
test(util): add unit tests for Atoi, ParseInt, ParseUint, and ParseFloat (#3377) 2025-05-15 14:53:54 +03:00
fukua95
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
ofekshenawa
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
Nedyalko Dyakov
f174acba52
ci(redis): update to 8.0.1 (#3372) 2025-05-08 15:32:47 +03:00
Lev Zakharov
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
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
fengyun.rui
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
dependabot[bot]
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
Nedyalko Dyakov
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
Nedyalko Dyakov
683f644ec2
chore(ci): Use redis 8 rc2 image. (#3361)
* chore(ci): Use redis 8 rc2 image

* test(timeseries): fix duplicatePolicy check
2025-04-29 13:08:34 +03:00
ofekshenawa
2f0a9b720a
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
2025-04-29 12:53:06 +03:00
fukua95
bb8d508481
fix: PubSub isn't concurrency-safe (#3360) 2025-04-29 09:39:26 +03:00
Hui
4bd5d417ca
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>
2025-04-29 00:16:53 +03:00
ofekshenawa
182a04f5fa
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>
2025-04-23 22:52:38 +03:00
Nedyalko Dyakov
030c184a71
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>
2025-04-23 14:36:38 +03:00
frankj
034a49f88a
fix: Fix panic caused when arg is nil (#3353) 2025-04-23 10:47:13 +03:00
andy-stark-redis
f7780dddac
DOC-5111 added hash search examples (#3357) 2025-04-22 19:24:57 +03:00
Glenn
a7b4ce5e50
docs: fix documentation comments (#3351) 2025-04-22 08:11:00 +03:00
Nedyalko Dyakov
e191cf9dbe
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
2025-04-17 16:31:07 +03:00
Naveen Prashanth
a4aea258fc
Ensure context isn't exhausted via concurrent query as opposed to sentinel query (#3334) 2025-04-16 22:32:40 +03:00
Bulat Khasanov
e2149b06f7
Use correct slot for COUNTKEYSINSLOT command (#3327) 2025-04-16 18:32:57 +03:00
ofekshenawa
7b9bd6c36e
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>
2025-04-16 15:59:20 +03:00
andy-stark-redis
b26758a906
DOC-5102 added CountOnly search example for docs (#3345) 2025-04-15 18:55:44 +03:00
Bulat Khasanov
eedb171825
Use DB option in NewFailoverClusterClient (#3342) 2025-04-15 16:57:50 +03:00
Nedyalko Dyakov
93bc3e6140
fix add missing command in interface (#3344) 2025-04-15 16:19:53 +03:00
ofekshenawa
6e07177495
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>
2025-04-15 14:39:59 +03:00
dependabot[bot]
46484324a5
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>
2025-04-07 13:21:55 +03:00
Nedyalko Dyakov
8e020c1d8f
drop ft.profile that was never enabled (#3323) 2025-04-03 17:01:34 +03:00
Nedyalko Dyakov
0df0f3c887
use 8.0-RC1 (#3330) 2025-04-03 16:10:51 +03:00
Liu Shuang
0cfcd1a61d
update pubsub.go (#3329) 2025-04-03 16:10:31 +03:00
andy-stark-redis
53daf77e1a
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>
2025-03-28 23:05:36 +02:00
Nedyalko Dyakov
cb3aa19618
Sync master with v9.8.0-beta.1 (#3322) 2025-03-25 12:25:35 +02:00
Nikolay Dubina
482a20d9c9
Feature more prominently how to enable OpenTelemetry instrumentation (#3316) 2025-03-25 09:28:25 +02:00
Oleglacto
132818033b
added Do method for raw query by single conn from pool.Conn() (#3182)
* added `Do` method for raw query by single conn from `pool.Conn()`

* added test to cmdble Do method

* fixed test

* moved Do cmd to commands.go

---------

Co-authored-by: Oleg Laktyushkin <oglaktyushkin@avito.ru>
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
2025-03-24 18:36:21 +02:00
Nedyalko Dyakov
97f7530415
Drop RedisGears (aka. Triggers and Functions) (#3321) 2025-03-24 17:30:29 +02:00
LINKIWI
9762559c75
Bound connection pool background dials to configured dial timeout (#3089) 2025-03-24 15:45:43 +02:00