Releases: redis/go-redis
9.16.0
🚀 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
TraceCmdFilteroption to selectively trace commands - Reduces overhead by excluding high-frequency or low-value commands from traces
- New
🐛 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.WithAttributeSetto avoid unnecessary attribute copying in redisotel (#3552)
📚 Documentation
- Cluster Client: Add explanation for why
MaxRetriesis disabled forClusterClient(#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-actionsfrom 0.51.0 to 0.52.0 (#3520) - Bump
github/codeql-actionfrom 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
9.16.0-beta.1
Clean state beta release, retracting 9.15.0
Retract v9.15.0 and v9.15.1
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
Changes
Same as v9.15.0-beta.2
Retracts v9.15.0
9.15.0-beta.2
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
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!
9.14.0
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!
9.13.0
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
🚀 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