1
0
mirror of https://github.com/redis/go-redis.git synced 2025-06-06 17:40:59 +03:00

2646 Commits

Author SHA1 Message Date
ofekshenawa
2aa9a6c3e9
Merge branch 'master' into expose-parse-float 2025-05-08 17:29:42 +03:00
Nedyalko Dyakov
f174acba52
ci(redis): update to 8.0.1 (#3372) 2025-05-08 15:32:47 +03:00
ofekshenawa
c00a455e1b add tests for special float values in vector search 2025-05-07 21:59:56 +03:00
ofekshenawa
9f5a1a63e9 utils: expose ParseFloat via new public utils package 2025-05-07 21:00:18 +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
Justin
694a7101d4
Make MASTERDOWN a retriable error in RedisCluster client (#3164)
When clusters are running with `replica-server-stale-data no`, replicas
will return a MASTERDOWN error under two conditions:
  1. The primary has failed and we are not serving requests.
  2. A replica has just started and has not yet synced from the primary.

The former, primary has failed and we are not serving requests, is
similar to a CLUSTERDOWN error and should be similarly retriable.

When a replica has just started and has not yet synced from the primary
the request should be retried on other available nodes in the shard.
Otherwise a percentage of the read requests to the shard will fail.

Examples when `replica-server-stale-data no` is enabled:
  1. In a cluster using `ReadOnly` with a single read replica, every
     read request will return errors to the client because MASTERDOWN is
     not a retriable error.
  2. In a cluster using `RouteRandomly` a percentage of the requests
     will return errors to the client based on if this server was
     selected.

Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
2025-03-24 15:28:20 +02:00
Nedyalko Dyakov
30c128a67a
chore: disable verifying golangci configuration (#3319) 2025-03-24 15:19:26 +02:00
Alexander Menshchikov
d86395694d
Add FailoverClusterClient support for Universal client (#2794)
* Add FailoverClusterClient support + fix example/hset-struct go.sum

* Improve NewUniversalClient comment

---------

Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
2025-03-24 14:21:08 +02:00
ofekshenawa
15059395a1
Support new hash commands: HGETDEL, HGETEX, HSETEX (#3305) 2025-03-24 14:03:26 +02:00
dependabot[bot]
d29aace826
chore(deps): bump golangci/golangci-lint-action from 6.5.1 to 6.5.2 (#3317)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 6.5.1 to 6.5.2.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v6.5.1...v6.5.2)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 13:47:29 +02:00
Nedyalko Dyakov
34222bffeb
release 9.7.3, retract 9.7.2 (#3314) (#3315) 2025-03-21 13:13:14 +02:00
dependabot[bot]
11efd6a01e
chore(deps): bump golang.org/x/net in /example/otel (#3308)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.33.0 to 0.36.0.
- [Commits](https://github.com/golang/net/compare/v0.33.0...v0.36.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-19 21:11:14 +02:00
Nedyalko Dyakov
d236865b0c
fix: handle network error on SETINFO (#3295) (CVE-2025-29923)
* fix: handle network error on SETINFO

This fix addresses potential out of order responses as described in `CVE-2025-29923`

* fix: deprecate DisableIndentity and introduce DisableIdentity

Both options will work before V10. In v10 DisableIndentity will be dropped. The preferred flag to use is `DisableIdentity`.
2025-03-19 19:02:36 +02:00
andy-stark-redis
74d4f08476
DOC-4494 SADD and SMEMBERS command examples (#3242)
* DOC-4494 added sadd example

* DOC-4494 sadd and smembers examples

* DOC-4494 better naming convention for result variables

---------

Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
2025-03-19 17:36:58 +02:00
ofekshenawa
a402c55344
Add vector types INT8 and UINT8 test (#3299) 2025-03-18 18:05:45 +02:00
b1ackd0t
8269e6a22a
fix(tracing): show the whole command rather than truncated version of it (#3290)
Truncate version of a long key might not be useful when debugging

Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
2025-03-18 14:50:29 +02:00
Nedyalko Dyakov
9494d8498a
chore: use redis 8 ce m05 (#3304)
* use m05

* add platform, since client-libs has image for amd64

* verbose testing

* Update .github/workflows/build.yml
2025-03-18 14:20:18 +02:00
dependabot[bot]
b3709c6506
chore(deps): bump golangci/golangci-lint-action from 6.5.0 to 6.5.1 (#3302)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 6.5.0 to 6.5.1.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v6.5.0...v6.5.1)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-17 16:27:26 +02:00
Monkey
4f09082f6b
fix: connection pool timeout, increase retries (#3298)
* fix: connection pool timeout, increase retries

Signed-off-by: monkey <golang@88.com>

* fix: add shouldRetry test

Signed-off-by: monkey <golang@88.com>

---------

Signed-off-by: monkey <golang@88.com>
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
2025-03-14 10:05:22 +02:00