|
1 | 1 | # Release Notes |
2 | 2 |
|
| 3 | +# 9.16.0 (2025-10-23) |
| 4 | + |
| 5 | +## 🚀 Highlights |
| 6 | + |
| 7 | +### Maintenance Notifications Support |
| 8 | + |
| 9 | +This release introduces comprehensive support for Redis maintenance notifications, enabling applications to handle server maintenance events gracefully. The new `maintnotifications` package provides: |
| 10 | + |
| 11 | +- **RESP3 Push Notifications**: Full support for Redis RESP3 protocol push notifications |
| 12 | +- **Connection Handoff**: Automatic connection migration during server maintenance with configurable retry policies and circuit breakers |
| 13 | +- **Graceful Degradation**: Configurable timeout relaxation during maintenance windows to prevent false failures |
| 14 | +- **Event-Driven Architecture**: Background workers with on-demand scaling for efficient handoff processing |
| 15 | +- **Production-Ready**: Comprehensive E2E testing framework and monitoring capabilities |
| 16 | + |
| 17 | +For detailed usage examples and configuration options, see the [maintenance notifications documentation](maintnotifications/README.md). |
| 18 | + |
| 19 | +## ✨ New Features |
| 20 | + |
| 21 | +- **Trace Filtering**: Add support for filtering traces for specific commands, including pipeline operations and dial operations ([#3519](https://github.com/redis/go-redis/pull/3519), [#3550](https://github.com/redis/go-redis/pull/3550)) |
| 22 | + - New `TraceCmdFilter` option to selectively trace commands |
| 23 | + - Reduces overhead by excluding high-frequency or low-value commands from traces |
| 24 | + |
| 25 | +## 🐛 Bug Fixes |
| 26 | + |
| 27 | +- **Pipeline Error Handling**: Fix issue where pipeline repeatedly sets the same error ([#3525](https://github.com/redis/go-redis/pull/3525)) |
| 28 | +- **Connection Pool**: Ensure re-authentication does not interfere with connection handoff operations ([#3547](https://github.com/redis/go-redis/pull/3547)) |
| 29 | + |
| 30 | +## 🔧 Improvements |
| 31 | + |
| 32 | +- **Hash Commands**: Update hash command implementations ([#3523](https://github.com/redis/go-redis/pull/3523)) |
| 33 | +- **OpenTelemetry**: Use `metric.WithAttributeSet` to avoid unnecessary attribute copying in redisotel ([#3552](https://github.com/redis/go-redis/pull/3552)) |
| 34 | + |
| 35 | +## 📚 Documentation |
| 36 | + |
| 37 | +- **Cluster Client**: Add explanation for why `MaxRetries` is disabled for `ClusterClient` ([#3551](https://github.com/redis/go-redis/pull/3551)) |
| 38 | + |
| 39 | +## 🧪 Testing & Infrastructure |
| 40 | + |
| 41 | +- **E2E Testing**: Upgrade E2E testing framework with improved reliability and coverage ([#3541](https://github.com/redis/go-redis/pull/3541)) |
| 42 | +- **Release Process**: Improved resiliency of the release process ([#3530](https://github.com/redis/go-redis/pull/3530)) |
| 43 | + |
| 44 | +## 📦 Dependencies |
| 45 | + |
| 46 | +- Bump `rojopolis/spellcheck-github-actions` from 0.51.0 to 0.52.0 ([#3520](https://github.com/redis/go-redis/pull/3520)) |
| 47 | +- Bump `github/codeql-action` from 3 to 4 ([#3544](https://github.com/redis/go-redis/pull/3544)) |
| 48 | + |
| 49 | +## 👥 Contributors |
| 50 | + |
| 51 | +We'd like to thank all the contributors who worked on this release! |
| 52 | + |
| 53 | +[@ndyakov](https://github.com/ndyakov), [@htemelski-redis](https://github.com/htemelski-redis), [@Sovietaced](https://github.com/Sovietaced), [@Udhayarajan](https://github.com/Udhayarajan), [@boekkooi-impossiblecloud](https://github.com/boekkooi-impossiblecloud), [@Pika-Gopher](https://github.com/Pika-Gopher), [@cxljs](https://github.com/cxljs), [@huiyifyj](https://github.com/huiyifyj), [@omid-h70](https://github.com/omid-h70) |
| 54 | + |
| 55 | +--- |
| 56 | + |
| 57 | +**Full Changelog**: https://github.com/redis/go-redis/compare/v9.14.0...v9.16.0 |
| 58 | + |
| 59 | + |
| 60 | +# 9.15.0 was accidentally released. Please use version 9.16.0 instead. |
| 61 | + |
3 | 62 | # 9.15.0-beta.3 (2025-09-26) |
4 | 63 |
|
5 | 64 | ## Highlights |
|
0 commit comments