1
0
mirror of https://github.com/redis/go-redis.git synced 2025-10-18 22:08:50 +03:00

2748 Commits

Author SHA1 Message Date
Hristo Temelski
1e6ee06740 test(e2e): testing framework upgrade (#3541)
* update e2e test, change script

* update script and tests

* fixed bdbid parsing

* disabled majority of tests, swapped event order

* change the config tag

* revert test order

* fix typo

* reenable all e2e tests

* change the clonfig flag key for all e2e tests

* improve logging for debug purposes of tests

* longer deadline for FI in CI

* increase waiting for notifications

* extend tests

* dont fail on flaky third client

* fi new params

* fix test build

* more time for migrating

* first wait for FI action, then assert notification

* fix test build

* fix tests

* fix tests

* change output

* global print logs for tests

* better output

* fix error format

* maybe the notification is already received

* second and third client fix

* print output if failed

* better second and third client checks

* output action data if notification is not received

* stop command runner

* database create / delete actions

* database create / delete actions used in tests

* fix import

* remove example

* remove unused var

* use different port than the one in env

* wait for action to get the response

* fix output

* fix create db config

* fix create db config

* use new database for client

* fix create db config

* db per scenario

* less logs, correct check

* Add CTRF to the scenario tests (#3545)

* add some json ctrf improvements

* fix -v

* attempt to separate the output

---------

Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>

---------

Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
Co-authored-by: kiryazovi-redis <ivaylo.kiryazov@redis.com>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-10-17 17:23:10 +03:00
Jason Parraga
f7eed76fbc Add support for filtering traces for certain commands (#3519)
* Add support for filtering commands when tracing

Signed-off-by: Jason Parraga <sovietaced@gmail.com>

* Filter sensitive data by default

Signed-off-by: Jason Parraga <sovietaced@gmail.com>

* Address comments

Signed-off-by: Jason Parraga <sovietaced@gmail.com>

---------

Signed-off-by: Jason Parraga <sovietaced@gmail.com>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-10-14 18:15:58 +03:00
dependabot[bot]
3d68c7e42f chore(deps): bump github/codeql-action from 3 to 4 (#3544)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  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-10-14 16:18:39 +03:00
Feng.YJ
3ad9f9cb23 fix: add missing error variable for non-unix build constraints (#3538)
* fix: add missing error variable for non-unix build constraints

* chore: name "_" for unused parameters

---------

Co-authored-by: Elena Kolevska <elena-kolevska@users.noreply.github.com>
2025-09-29 09:35: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
extra/redisotel/v9.15.1 extra/rediscensus/v9.15.1 extra/redisprometheus/v9.15.1 v9.15.1 extra/rediscmd/v9.15.1
2025-09-27 23:33:54 +03:00
Hristo Temelski
819f01b489 retract wrongly released version (#3533) extra/redisotel/v9.16.0-beta.1 extra/redisprometheus/v9.16.0-beta.1 extra/rediscensus/v9.16.0-beta.1 v9.16.0-beta.1 extra/rediscmd/v9.16.0-beta.1 2025-09-27 15:38:46 +01:00
Hristo Temelski
7405cff430 depreciate 9.15.0 (#3532) extra/rediscensus/v9.15.0-beta.3 extra/rediscmd/v9.15.0-beta.3 extra/redisotel/v9.15.0-beta.3 extra/redisprometheus/v9.15.0-beta.3 v9.15.0-beta.3 2025-09-27 02:17:21 +03:00
Hristo Temelski
8b38e27f97 release: 9.15.0-beta.2 (#3531) extra/redisprometheus/v9.15.0-beta.2 extra/redisotel/v9.15.0-beta.2 v9.15.0-beta.2 extra/rediscmd/v9.15.0-beta.2 extra/rediscensus/v9.15.0-beta.2 2025-09-26 19:40:07 +03:00
Nedyalko Dyakov
75ddeb3d5a feat(e2e-testing): maintnotifications e2e and refactor (#3526)
* e2e wip

* cleanup

* remove unused fault injector mock

* errChan in test

* remove log messages tests

* cleanup log messages

* s/hitless/maintnotifications/

* fix moving when none

* better logs

* test with second client after action has started

* Fixes

Signed-off-by: Elena Kolevska <elena@kolevska.com>

* Test fix

Signed-off-by: Elena Kolevska <elena@kolevska.com>

* feat(e2e-test): Extended e2e tests

* imroved e2e test resiliency

---------

Signed-off-by: Elena Kolevska <elena@kolevska.com>
Co-authored-by: Elena Kolevska <elena@kolevska.com>
Co-authored-by: Elena Kolevska <elena-kolevska@users.noreply.github.com>
Co-authored-by: Hristo Temelski <hristo.temelski@redis.com>
2025-09-26 19:17:09 +03:00
Hristo Temelski
e6e52bc735 feat(tag.sh): Improved resiliency of the release process (#3530) 2025-09-26 18:35:29 +03:00
cxljs
113a18ae75 fix: pipeline repeatedly sets the error (#3525)
* fix: pipeline repeatedly sets the error

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

* add test

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

* CI

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

---------

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-09-17 17:32:24 +03:00
Omid Hosseini
286735bef1 chore(docs): Update hash_commands.go (#3523)
add ctx for clarification when reading docs in comments
2025-09-17 12:18:24 +03:00
dependabot[bot]
363fa8eeb4 chore(deps): bump rojopolis/spellcheck-github-actions (#3520)
Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.51.0 to 0.52.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.51.0...0.52.0)

---
updated-dependencies:
- dependency-name: rojopolis/spellcheck-github-actions
  dependency-version: 0.52.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-09-16 00:51:18 +03:00
Nedyalko Dyakov
0dcfeefea7 chore(release): 9.15.0-beta.1 (#3514) v9.15.0-beta.1 extra/redisprometheus/v9.15.0-beta.1 extra/redisotel/v9.15.0-beta.1 extra/rediscensus/v9.15.0-beta.1 extra/rediscmd/v9.15.0-beta.1 2025-09-10 23:02:16 +03:00
Nedyalko Dyakov
0ef6d0727d feat: RESP3 notifications support & Hitless notifications handling [CAE-1088] & [CAE-1072] (#3418)
- Adds support for handling push notifications with RESP3. 
- Using this support adds handlers for hitless upgrades.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Hristo Temelski <hristo.temelski@redis.com>
2025-09-10 22:18:01 +03:00
Hristo Temelski
2da6ca07c0 chore(release): Update the rest of the versions (#3513)
* chore(release): Update the rest of the versions

* improved tag script
extra/rediscensus/v9.14.0 extra/redisotel/v9.14.0 extra/rediscmd/v9.14.0 v9.14.0 extra/redisprometheus/v9.14.0
2025-09-10 15:01:18 +03:00
Hristo Temelski
c11a704481 chore(release): v9.14.0 (#3512) 2025-09-10 14:33:08 +03:00
Elena Kolevska
8f5469abd0 chore(ci): Update release drafter config to exclude dependabot (#3511)
Exclude 'dependabot' from contributors in release drafter config.
2025-09-10 12:55:22 +03:00
Nedyalko Dyakov
a264ffb8a4 fix: SetErr on Cmd if the command cannot be queued correctly in multi/exec (#3509)
* set error if queued fails

* try fix for cluster

* add errors to cmds in pipeline if about to be returned
2025-09-09 18:45:37 +03:00
Hristo Temelski
e0853aba63 Added batch process method to the pipeline (#3510)
* Added batch process method to the pipeline

* Added Process and BatchProcess tests

* Fix test matching
2025-09-09 18:10:17 +03:00
dependabot[bot]
65e1c22065 chore(deps): bump actions/setup-go from 5 to 6 (#3504)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5 to 6.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: '6'
  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-09-09 11:34:38 +03:00
Nedyalko Dyakov
52bda7a35a chore(release): 9.13.0 (#3500) extra/rediscmd/v9.13.0 v9.13.0 extra/redisprometheus/v9.13.0 extra/redisotel/v9.13.0 extra/rediscensus/v9.13.0 2025-09-03 14:52:32 +03:00
Matthew Hooker
19fdc488a7 chore(otel): register wait metrics (#3499) 2025-09-03 13:12:41 +03:00
LINKIWI
10121e9e1c feat(osscluster): Support subscriptions against cluster slave nodes (#3480) 2025-09-02 16:03:00 +03:00
Jonathan Suever
6f41b600c5 fix(client): Do not assume that all non-IP hosts are loopbacks (#3085)
* Do not assume that all non-IP hosts are loopbacks

* handle localhost and Docker internal hostnames

---------

Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
Co-authored-by: ofekshenawa <ofek.shenawa@redis.com>
Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
2025-09-02 15:58:50 +03:00
Matthew Hooker
f0058063a9 feat(otel): Add wait metrics to otel (#3493)
* Add wait metrics to otel

* add unit
2025-09-02 15:48:18 +03:00
cxljs
fafec3f3ce Pipeliner expose queued commands (#3496)
* Pipeliner expose queued commands

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

* add tests and update some comments

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

---------

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
2025-09-01 17:44:26 +03:00
cxljs
6b9cbe8c54 fix(test): fix a timing issue in pubsub test (#3498)
Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
2025-09-01 17:15:50 +03:00
Nedyalko Dyakov
e91f6ced09 fix(make test): Add default env in makefile (#3491)
* fix(make test): add default env in makefile

* Apply suggestion from @ndyakov

* update hardcoded version
2025-09-01 16:17:28 +03:00
cxljs
6bc7238340 Fix the ReplicaOnly option does not take effect when using NewFailoverClusterClient (#3482)
Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-09-01 10:09:32 +03:00
cxljs
bb94ac7898 chore(readme): Update the introduction to running tests in README.md (#3495)
* update README.md

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

* update README.md

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

---------

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
2025-09-01 10:08:14 +03:00
cybersmeashish
ff4d63e06b chore(test): Add comprehensive edge case tests for IncrByFloat command (#3477)
This commit adds extensive test coverage for the IncrByFloat Redis command,
covering various edge cases and scenarios that were not previously tested.

Test cases added:
- Negative increment values
- Zero increment (should return current value)
- High precision floating point operations
- Non-existent key behavior (should start from 0)
- Integer values stored as strings
- Scientific notation (both positive and negative)
- Error handling for non-numeric values
- Very large numbers (near float64 limits)
- Very small numbers (near zero precision)

These tests ensure robust behavior of the IncrByFloat command across
different numeric formats and edge conditions, improving the overall
reliability and test coverage of the go-redis library.

The tests use Gomega's BeNumerically matcher for floating point
comparisons to handle precision issues appropriately.
2025-08-18 20:05:47 +03:00
cxljs
e07f55bed1 chore(buffers): Set the default read/write buffer size of Redis connection to 32KiB (#3483)
* update README.md

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

* typo: 0.5MiB -> 256KiB

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

* Set the default read/write buffer size of Redis connection to 32KiB

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>

---------

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
2025-08-18 20:04:55 +03:00
Elena Kolevska
b8682d037b chore(ci): Bumps test image to 8.2.1-pre (#3478)
* Bumps test image to 8.2.1-pre

Signed-off-by: Elena Kolevska <elena@kolevska.com>

* Missed the “benchmark” job

Signed-off-by: Elena Kolevska <elena@kolevska.com>

---------

Signed-off-by: Elena Kolevska <elena@kolevska.com>
2025-08-18 16:51:38 +03:00
cxljs
8336c44404 chore(client): fix UniversalOptions miss ReadBufferSize and WriteBufferSize options (#3485)
Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
2025-08-18 15:46:31 +03:00
dependabot[bot]
d2ad801ba2 chore(deps): bump actions/checkout from 4 to 5 (#3484)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  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-08-18 11:33:44 +03:00
cxljs
97817108dd Set the read/write buffer size of the sentinel client to 4KiB (#3476)
Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
2025-08-14 15:48:45 +03:00
ofekshenawa
0b1e9f77ef fix(json): Ensure that JSON.GET returns Nil response (#3470)
* fix conflicts

* Fix JSON nil response handling

Ensure that JSON.GET returns redis.Nil for missing keys/paths,
making it consistent with other Redis commands.

- Restore proper nil detection logic in JSONCmd.readReply
- Add comprehensive test coverage for JSON nil scenarios
- Handle both non-existent keys and non-existent paths consistently
- Distinguish between empty arrays and nil responses
- Add documentation for Val() and Expanded() methods

Original work and problem identification by Nic Gibson.
Enhanced implementation with comprehensive testing and fixes
for the broken nil detection logic.

Fixes #2987

* Fix JSON nil response handling - align with Redis behavior

- Non-existent keys return redis.Nil (consistent with other Redis commands)
- Non-existent paths in existing keys return empty array '[]'
- Fix broken test that was using wrong doc1 reference
- Add comprehensive test coverage for JSON nil scenarios

This aligns with official Redis JSON.GET behavior:
- Missing keys should return nil error like other Redis commands
- Missing paths should return empty JSON array, not error

* Fix JSONDel tests

---------

Co-authored-by: Nic Gibson <nic.gibson@redis.com>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-08-12 14:28:07 +03:00
Elena Kolevska
b566dcacd6 chore(github): Removes dry run for stale issues policy (#3471) 2025-08-12 14:08:51 +03:00
ofekshenawa
436979f5c7 feat(options): Clean failing timeout implementation (#3472)
* Fix hard code of failing timeout

1. if not set failing time limit, default is 15 seconds.

* feat: Complete configurable FailingTimeoutSeconds implementation

---------

Co-authored-by: Shino Wu <shino_wu@trendmicro.com>
2025-08-12 14:08:28 +03:00
Hristo Temelski
6220024a38 chore(otel): Update otel metrics URL (#3474) 2025-08-12 14:07:17 +03:00
Nedyalko Dyakov
7b4a537aef chore(release): 9.12.1, failover client buffer size fixes (#3469) extra/rediscmd/v9.12.1 extra/rediscensus/v9.12.1 v9.12.1 extra/redisotel/v9.12.1 extra/redisprometheus/v9.12.1 2025-08-11 18:58:21 +03:00
Nedyalko Dyakov
94cfffa417 fix(options): Add buffer sizes to failover. Update README (#3468)
* fix(options): Add buffer sizes to failover. Update README

* fix(spellcheck): add KiB in wordlist

* fix(comment): fix defaul value in comment

* fixes #3465
2025-08-11 16:01:24 +03:00
Vladimir Mihailenco
2c29dedc2d chore(otel): upgrade otel example to Uptrace v2 (#3466)
Uptrace v2 comes with a new config file and new defaults.
Also updated dependencies to the latest versions.
2025-08-11 12:33:09 +03:00
Nedyalko Dyakov
b7838dc4e7 chore(release): 9.12.0 / redis 8.2 (#3464) extra/redisotel/v9.12.0 extra/rediscmd/v9.12.0 v9.12.0 extra/rediscensus/v9.12.0 extra/redisprometheus/v9.12.0 2025-08-05 16:50:25 +03:00
Monkey
6a48d3fec1 feat: recover addIdleConn may occur panic (#2445)
* feat: recover addIdleConn may occur panic

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

* fix test race

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

---------

Signed-off-by: monkey92t <golang@88.com>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-08-05 15:31:58 +03:00
Cattī Crūdēlēs
4767d9dfaf fix(redisotel): fix buggy append in reportPoolStats (#3122)
The current append twice to `conf.attrs` approach in `reportPoolStats` may result in unexpected idleAttrs,
due to `append` [can mutate](https://github.com/golang/go/issues/29115#issuecomment-444669036) the underlying array of the original slice,
as demonstrated at <https://go.dev/play/p/jwRMofH91eQ?v=goprev>.

Also, I replaced `metric.WithAttributes` in `reportPoolStats` with `metric.WithAttributeSet`,
since `WithAttributes` is just `WithAttributeSet` with some extra works that are not needed here,
see <https://pkg.go.dev/go.opentelemetry.io/otel/metric@v1.22.0#WithAttributes>.

Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-08-05 15:15:34 +03:00
Mykhailo Alipa
7158a8dad4 feat(ring): specify custom health check func via HeartbeatFn option (#2940)
* specify custom health check func via ShardHealthCheckFn option

* ShardHealthCheckFn renamed to HeartbeatFn

---------

Co-authored-by: Mykhailo Alipa <strobil@Mykhailos-MacBook-Air.local>
Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
Co-authored-by: Nedyalko Dyakov <nedyalko.dyakov@gmail.com>
Co-authored-by: Nedyalko Dyakov <1547186+ndyakov@users.noreply.github.com>
2025-08-05 15:00:33 +03:00
Elena Kolevska
8d15d03d4e chore(github): merges into one job with two steps (#3463)
Signed-off-by: Elena Kolevska <elena@kolevska.com>
2025-08-05 14:49:28 +03:00
cxljs
375fa5d083 chore(doc): improve code readability (#3446)
- replace two similar functions `appendUniqueNode` and `appendIfNotExists` with a generic function.

- simplify the implementation of the `get` method in `clusterNodes`

- keep the member name `_generation` of `clusterNodes` consistent with other types.

- rename a data member `_masterAddr` to `masterAddr`.

Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
2025-08-04 17:22:16 +03:00