Skip to content

Releases: redis/go-redis

9.16.0

23 Oct 15:11
f195656

Choose a tag to compare

🚀 Highlights

Maintenance Notifications Support

This release introduces comprehensive support for Redis maintenance notifications, enabling applications to handle server maintenance events gracefully. The new maintnotifications package provides:

  • RESP3 Push Notifications: Full support for Redis RESP3 protocol push notifications
  • Connection Handoff: Automatic connection migration during server maintenance with configurable retry policies and circuit breakers
  • Graceful Degradation: Configurable timeout relaxation during maintenance windows to prevent false failures
  • Event-Driven Architecture: Background workers with on-demand scaling for efficient handoff processing

For detailed usage examples and configuration options, see the maintenance notifications documentation.

✨ New Features

  • Trace Filtering: Add support for filtering traces for specific commands, including pipeline operations and dial operations (#3519, #3550)
    • New TraceCmdFilter option to selectively trace commands
    • Reduces overhead by excluding high-frequency or low-value commands from traces

🐛 Bug Fixes

  • Pipeline Error Handling: Fix issue where pipeline repeatedly sets the same error (#3525)
  • Connection Pool: Ensure re-authentication does not interfere with connection handoff operations (#3547)

🔧 Improvements

  • Hash Commands: Update hash command implementations (#3523)
  • OpenTelemetry: Use metric.WithAttributeSet to avoid unnecessary attribute copying in redisotel (#3552)

📚 Documentation

  • Cluster Client: Add explanation for why MaxRetries is disabled for ClusterClient (#3551)

🧪 Testing & Infrastructure

  • E2E Testing: Upgrade E2E testing framework with improved reliability and coverage (#3541)
  • Release Process: Improved resiliency of the release process (#3530)

📦 Dependencies

  • Bump rojopolis/spellcheck-github-actions from 0.51.0 to 0.52.0 (#3520)
  • Bump github/codeql-action from 3 to 4 (#3544)

👥 Contributors

We'd like to thank all the contributors who worked on this release!

@ndyakov, @htemelski-redis, @Sovietaced, @Udhayarajan, @boekkooi-impossiblecloud, @Pika-Gopher, @cxljs, @huiyifyj, @omid-h70


Full Changelog: v9.14.0...v9.16.0

9.14.1

18 Oct 21:53
512579f

Choose a tag to compare

Changes

  • fix(otel): Add support for filtering traces for certain commands (#3519)
  • fix(pool): remove conn from idleConns if present (#3546)

Contributors

We'd like to thank all the contributors who worked on this release!

@Sovietaced, @ndyakov

9.16.0-beta.1

27 Sep 15:48
819f01b

Choose a tag to compare

9.16.0-beta.1 Pre-release
Pre-release

Clean state beta release, retracting 9.15.0

Retract v9.15.0 and v9.15.1

27 Sep 20:34
a44df88

Choose a tag to compare

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

9.15.0-beta.3

26 Sep 23:18
7405cff

Choose a tag to compare

9.15.0-beta.3 Pre-release
Pre-release

Changes

Same as v9.15.0-beta.2
Retracts v9.15.0

9.15.0-beta.2

26 Sep 16:41
8b38e27

Choose a tag to compare

9.15.0-beta.2 Pre-release
Pre-release

Highlights

This beta release includes a pre-production version of processing push notifications and hitless upgrades.

Changes

  • chore: Update hash_commands.go (#3523)

🚀 New Features

  • feat: RESP3 notifications support & Hitless notifications handling (#3418)

🐛 Bug Fixes

  • fix: pipeline repeatedly sets the error (#3525)

🧰 Maintenance

  • chore(deps): bump rojopolis/spellcheck-github-actions from 0.51.0 to 0.52.0 (#3520)
  • feat(e2e-testing): maintnotifications e2e and refactor (#3526)
  • feat(tag.sh): Improved resiliency of the release process (#3530)

Contributors

We'd like to thank all the contributors who worked on this release!

@cxljs, @ndyakov, @htemelski-redis, and @omid-h70

9.15.0-beta.1

10 Sep 20:05
0dcfeef

Choose a tag to compare

9.15.0-beta.1 Pre-release
Pre-release

Highlights

This beta release includes a pre-production version of processing push notifications and hitless upgrades.

Hitless Upgrades

Hitless upgrades is a major new feature that allows for zero-downtime upgrades in Redis clusters.
You can find more information in the Hitless Upgrades documentation.

Changes

🚀 New Features

  • [CAE-1088] & [CAE-1072] feat: RESP3 notifications support & Hitless notifications handling (#3418)

Contributors

We'd like to thank all the contributors who worked on this release!

@ndyakov, @htemelski-redis, @ofekshenawa

9.14.0

10 Sep 12:02
2da6ca0

Choose a tag to compare

Highlights

  • Added batch process method to the pipeline (#3510)

Changes

🚀 New Features

  • Added batch process method to the pipeline (#3510)

🐛 Bug Fixes

  • fix: SetErr on Cmd if the command cannot be queued correctly in multi/exec (#3509)

🧰 Maintenance

  • Updates release drafter config to exclude dependabot (#3511)
  • chore(deps): bump actions/setup-go from 5 to 6 (#3504)

Contributors

We'd like to thank all the contributors who worked on this release!

@elena-kolevska, @htemelski-redis and @ndyakov

9.13.0

03 Sep 11:56
52bda7a

Choose a tag to compare

Highlights

  • Pipeliner expose queued commands (#3496)
  • Ensure that JSON.GET returns Nil response (#3470)
  • Fixes on Read and Write buffer sizes and UniversalOptions

Changes

  • Pipeliner expose queued commands (#3496)
  • fix(test): fix a timing issue in pubsub test (#3498)
  • Allow users to enable read-write splitting in failover mode. (#3482)
  • Set the read/write buffer size of the sentinel client to 4KiB (#3476)

🚀 New Features

  • fix(otel): register wait metrics (#3499)
  • Support subscriptions against cluster slave nodes (#3480)
  • Add wait metrics to otel (#3493)
  • Clean failing timeout implementation (#3472)

🐛 Bug Fixes

  • Do not assume that all non-IP hosts are loopbacks (#3085)
  • Ensure that JSON.GET returns Nil response (#3470)

🧰 Maintenance

  • fix(otel): register wait metrics (#3499)
  • fix(make test): Add default env in makefile (#3491)
  • Update the introduction to running tests in README.md (#3495)
  • test: Add comprehensive edge case tests for IncrByFloat command (#3477)
  • Set the default read/write buffer size of Redis connection to 32KiB (#3483)
  • Bumps test image to 8.2.1-pre (#3478)
  • fix UniversalOptions miss ReadBufferSize and WriteBufferSize options (#3485)
  • chore(deps): bump actions/checkout from 4 to 5 (#3484)
  • Removes dry run for stale issues policy (#3471)
  • Update otel metrics URL (#3474)

Contributors

We'd like to thank all the contributors who worked on this release!

@LINKIWI, @cxljs, @cybersmeashish, @elena-kolevska, @htemelski-redis, @mwhooker, @ndyakov, @ofekshenawa, @suever

9.12.1

11 Aug 16:00
7b4a537

Choose a tag to compare

🚀 Highlights

In the last version (9.12.0) the client introduced bigger write and read buffer sizes. The default value was 512KiB.
However, users reported that this is too big for most use cases and can lead to high memory usage.
In this version the default value is changed to 256KiB. The README.md was updated to reflect the
correct default value and include a note that the default value can be changed.

🐛 Bug Fixes

  • fix(options): Add buffer sizes to failover. Update README (#3468)

🧰 Maintenance

  • fix(options): Add buffer sizes to failover. Update README (#3468)
  • chore: update & fix otel example (#3466)

Contributors

We'd like to thank all the contributors who worked on this release!

@ndyakov and @vmihailenco