build(deps): update module github.com/redis/go-redis/v9 to v9.17.0
This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| github.com/redis/go-redis/v9 | require | minor |
v9.14.0 -> v9.17.0
|
MR created with the help of gitlab-org/frontend/renovate-gitlab-bot
Release Notes
redis/go-redis (github.com/redis/go-redis/v9)
v9.17.0: 9.17.0
🚀 Highlights
Redis 8.4 Support
Added support for Redis 8.4, including new commands and features (#3572)
Typed Errors
Introduced typed errors for better error handling using errors.As instead of string checks. Errors can now be wrapped and set to commands in hooks without breaking library functionality (#3602)
New Commands
-
CAS/CAD Commands: Added support for Compare-And-Set/Compare-And-Delete operations with conditional matching (
IFEQ,IFNE,IFDEQ,IFDNE) (#3583, #3595) - MSETEX: Atomically set multiple key-value pairs with expiration options and conditional modes (#3580)
- XReadGroup CLAIM: Consume both incoming and idle pending entries from streams in a single call (#3578)
-
ACL Commands: Added
ACLGenPass,ACLUsers, andACLWhoAmI(#3576) -
SLOWLOG Commands: Added
SLOWLOG LENandSLOWLOG RESET(#3585) -
LATENCY Commands: Added
LATENCY LATESTandLATENCY RESET(#3584)
Search & Vector Improvements
-
Hybrid Search: Added EXPERIMENTAL support for the new
FT.HYBRIDcommand (#3573) -
Vector Range: Added
VRANGEcommand for vector sets (#3543) - FT.INFO Enhancements: Added vector-specific attributes in FT.INFO response (#3596)
Connection Pool Improvements
- Improved Connection Success Rate: Implemented FIFO queue-based fairness and context pattern for connection creation to prevent premature cancellation under high concurrency (#3518)
- Connection State Machine: Resolved race conditions and improved pool performance with proper state tracking (#3559)
- Pool Performance: Significant performance improvements with faster semaphores, lockless hook manager, and reduced allocations (47-67% faster Get/Put operations) (#3565)
Metrics & Observability
- Canceled Metric Attribute: Added 'canceled' metrics attribute to distinguish context cancellation errors from other errors (#3566)
✨ New Features
- Typed errors with wrapping support (#3602) by @ndyakov
- CAS/CAD commands (marked as experimental) (#3583, #3595) by @ndyakov, @htemelski-redis
- MSETEX command support (#3580) by @ofekshenawa
- XReadGroup CLAIM argument (#3578) by @ofekshenawa
- ACL commands: GenPass, Users, WhoAmI (#3576) by @destinyoooo
- SLOWLOG commands: LEN, RESET (#3585) by @destinyoooo
- LATENCY commands: LATEST, RESET (#3584) by @destinyoooo
- Hybrid search command (FT.HYBRID) (#3573) by @htemelski-redis
- Vector range command (VRANGE) (#3543) by @cxljs
- Vector-specific attributes in FT.INFO (#3596) by @ndyakov
- Improved connection pool success rate with FIFO queue (#3518) by @cyningsun
- Canceled metrics attribute for context errors (#3566) by @pvragov
🐛 Bug Fixes
- Fixed Failover Client MaintNotificationsConfig (#3600) by @ajax16384
- Fixed ACLGenPass function to use the bit parameter (#3597) by @destinyoooo
- Return error instead of panic from commands (#3568) by @dragneelfps
- Safety harness in
joinErrorsto prevent panic (#3577) by @manisharma
⚡ Performance
- Connection state machine with race condition fixes (#3559) by @ndyakov
- Pool performance improvements: 47-67% faster Get/Put, 33% less memory, 50% fewer allocations (#3565) by @ndyakov
🧪 Testing & Infrastructure
- Updated to Redis 8.4.0 image (#3603) by @ndyakov
- Added Redis 8.4-RC1-pre to CI (#3572) by @ndyakov
- Refactored tests for idiomatic Go (#3561, #3562, #3563) by @12ya
👥 Contributors
We'd like to thank all the contributors who worked on this release!
@12ya, @ajax16384, @cxljs, @cyningsun, @destinyoooo, @dragneelfps, @htemelski-redis, @manisharma, @ndyakov, @ofekshenawa, @pvragov
Full Changelog: https://github.com/redis/go-redis/compare/v9.16.0...v9.17.0
v9.16.0: 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: https://github.com/redis/go-redis/compare/v9.14.0...v9.16.0
v9.15.1: Retract v9.15.0 and v9.15.1
v9.14.1: 9.14.1
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!
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.