Update module github.com/redis/go-redis/v9 to v9.17.0 #67

Merged
Gusted merged 1 commit from renovate/github.com-redis-go-redis-v9-9.x into main 2025-11-20 23:15:43 +00:00
Member

This PR contains the following updates:

Package Change Age Confidence
github.com/redis/go-redis/v9 v9.13.0 -> v9.17.0 age confidence

Release Notes

redis/go-redis (github.com/redis/go-redis/v9)

v9.17.0: 9.17.0

Compare Source

🚀 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, and ACLWhoAmI (#​3576)
  • SLOWLOG Commands: Added SLOWLOG LEN and SLOWLOG RESET (#​3585)
  • LATENCY Commands: Added LATENCY LATEST and LATENCY RESET (#​3584)
Search & Vector Improvements
  • Hybrid Search: Added EXPERIMENTAL support for the new FT.HYBRID command (#​3573)
  • Vector Range: Added VRANGE command 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

🐛 Bug Fixes

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

👥 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

Compare Source

🚀 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: 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

Compare Source

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

v9.14.0: 9.14.0

Compare Source

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


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [github.com/redis/go-redis/v9](https://github.com/redis/go-redis) | `v9.13.0` -> `v9.17.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fredis%2fgo-redis%2fv9/v9.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fredis%2fgo-redis%2fv9/v9.13.0/v9.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>redis/go-redis (github.com/redis/go-redis/v9)</summary> ### [`v9.17.0`](https://github.com/redis/go-redis/releases/tag/v9.17.0): 9.17.0 [Compare Source](https://github.com/redis/go-redis/compare/v9.16.0...v9.17.0) #### 🚀 Highlights ##### Redis 8.4 Support Added support for Redis 8.4, including new commands and features ([#&#8203;3572](https://github.com/redis/go-redis/pull/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 ([#&#8203;3602](https://github.com/redis/go-redis/pull/3602)) ##### New Commands - **CAS/CAD Commands**: Added support for Compare-And-Set/Compare-And-Delete operations with conditional matching (`IFEQ`, `IFNE`, `IFDEQ`, `IFDNE`) ([#&#8203;3583](https://github.com/redis/go-redis/pull/3583), [#&#8203;3595](https://github.com/redis/go-redis/pull/3595)) - **MSETEX**: Atomically set multiple key-value pairs with expiration options and conditional modes ([#&#8203;3580](https://github.com/redis/go-redis/pull/3580)) - **XReadGroup CLAIM**: Consume both incoming and idle pending entries from streams in a single call ([#&#8203;3578](https://github.com/redis/go-redis/pull/3578)) - **ACL Commands**: Added `ACLGenPass`, `ACLUsers`, and `ACLWhoAmI` ([#&#8203;3576](https://github.com/redis/go-redis/pull/3576)) - **SLOWLOG Commands**: Added `SLOWLOG LEN` and `SLOWLOG RESET` ([#&#8203;3585](https://github.com/redis/go-redis/pull/3585)) - **LATENCY Commands**: Added `LATENCY LATEST` and `LATENCY RESET` ([#&#8203;3584](https://github.com/redis/go-redis/pull/3584)) ##### Search & Vector Improvements - **Hybrid Search**: Added **EXPERIMENTAL** support for the new `FT.HYBRID` command ([#&#8203;3573](https://github.com/redis/go-redis/pull/3573)) - **Vector Range**: Added `VRANGE` command for vector sets ([#&#8203;3543](https://github.com/redis/go-redis/pull/3543)) - **FT.INFO Enhancements**: Added vector-specific attributes in FT.INFO response ([#&#8203;3596](https://github.com/redis/go-redis/pull/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 ([#&#8203;3518](https://github.com/redis/go-redis/pull/3518)) - **Connection State Machine**: Resolved race conditions and improved pool performance with proper state tracking ([#&#8203;3559](https://github.com/redis/go-redis/pull/3559)) - **Pool Performance**: Significant performance improvements with faster semaphores, lockless hook manager, and reduced allocations (47-67% faster Get/Put operations) ([#&#8203;3565](https://github.com/redis/go-redis/pull/3565)) ##### Metrics & Observability - **Canceled Metric Attribute**: Added 'canceled' metrics attribute to distinguish context cancellation errors from other errors ([#&#8203;3566](https://github.com/redis/go-redis/pull/3566)) #### ✨ New Features - Typed errors with wrapping support ([#&#8203;3602](https://github.com/redis/go-redis/pull/3602)) by [@&#8203;ndyakov](https://github.com/ndyakov) - CAS/CAD commands (marked as experimental) ([#&#8203;3583](https://github.com/redis/go-redis/pull/3583), [#&#8203;3595](https://github.com/redis/go-redis/pull/3595)) by [@&#8203;ndyakov](https://github.com/ndyakov), [@&#8203;htemelski-redis](https://github.com/htemelski-redis) - MSETEX command support ([#&#8203;3580](https://github.com/redis/go-redis/pull/3580)) by [@&#8203;ofekshenawa](https://github.com/ofekshenawa) - XReadGroup CLAIM argument ([#&#8203;3578](https://github.com/redis/go-redis/pull/3578)) by [@&#8203;ofekshenawa](https://github.com/ofekshenawa) - ACL commands: GenPass, Users, WhoAmI ([#&#8203;3576](https://github.com/redis/go-redis/pull/3576)) by [@&#8203;destinyoooo](https://github.com/destinyoooo) - SLOWLOG commands: LEN, RESET ([#&#8203;3585](https://github.com/redis/go-redis/pull/3585)) by [@&#8203;destinyoooo](https://github.com/destinyoooo) - LATENCY commands: LATEST, RESET ([#&#8203;3584](https://github.com/redis/go-redis/pull/3584)) by [@&#8203;destinyoooo](https://github.com/destinyoooo) - Hybrid search command (FT.HYBRID) ([#&#8203;3573](https://github.com/redis/go-redis/pull/3573)) by [@&#8203;htemelski-redis](https://github.com/htemelski-redis) - Vector range command (VRANGE) ([#&#8203;3543](https://github.com/redis/go-redis/pull/3543)) by [@&#8203;cxljs](https://github.com/cxljs) - Vector-specific attributes in FT.INFO ([#&#8203;3596](https://github.com/redis/go-redis/pull/3596)) by [@&#8203;ndyakov](https://github.com/ndyakov) - Improved connection pool success rate with FIFO queue ([#&#8203;3518](https://github.com/redis/go-redis/pull/3518)) by [@&#8203;cyningsun](https://github.com/cyningsun) - Canceled metrics attribute for context errors ([#&#8203;3566](https://github.com/redis/go-redis/pull/3566)) by [@&#8203;pvragov](https://github.com/pvragov) #### 🐛 Bug Fixes - Fixed Failover Client MaintNotificationsConfig ([#&#8203;3600](https://github.com/redis/go-redis/pull/3600)) by [@&#8203;ajax16384](https://github.com/ajax16384) - Fixed ACLGenPass function to use the bit parameter ([#&#8203;3597](https://github.com/redis/go-redis/pull/3597)) by [@&#8203;destinyoooo](https://github.com/destinyoooo) - Return error instead of panic from commands ([#&#8203;3568](https://github.com/redis/go-redis/pull/3568)) by [@&#8203;dragneelfps](https://github.com/dragneelfps) - Safety harness in `joinErrors` to prevent panic ([#&#8203;3577](https://github.com/redis/go-redis/pull/3577)) by [@&#8203;manisharma](https://github.com/manisharma) #### ⚡ Performance - Connection state machine with race condition fixes ([#&#8203;3559](https://github.com/redis/go-redis/pull/3559)) by [@&#8203;ndyakov](https://github.com/ndyakov) - Pool performance improvements: 47-67% faster Get/Put, 33% less memory, 50% fewer allocations ([#&#8203;3565](https://github.com/redis/go-redis/pull/3565)) by [@&#8203;ndyakov](https://github.com/ndyakov) #### 🧪 Testing & Infrastructure - Updated to Redis 8.4.0 image ([#&#8203;3603](https://github.com/redis/go-redis/pull/3603)) by [@&#8203;ndyakov](https://github.com/ndyakov) - Added Redis 8.4-RC1-pre to CI ([#&#8203;3572](https://github.com/redis/go-redis/pull/3572)) by [@&#8203;ndyakov](https://github.com/ndyakov) - Refactored tests for idiomatic Go ([#&#8203;3561](https://github.com/redis/go-redis/pull/3561), [#&#8203;3562](https://github.com/redis/go-redis/pull/3562), [#&#8203;3563](https://github.com/redis/go-redis/pull/3563)) by [@&#8203;12ya](https://github.com/12ya) #### 👥 Contributors We'd like to thank all the contributors who worked on this release! [@&#8203;12ya](https://github.com/12ya), [@&#8203;ajax16384](https://github.com/ajax16384), [@&#8203;cxljs](https://github.com/cxljs), [@&#8203;cyningsun](https://github.com/cyningsun), [@&#8203;destinyoooo](https://github.com/destinyoooo), [@&#8203;dragneelfps](https://github.com/dragneelfps), [@&#8203;htemelski-redis](https://github.com/htemelski-redis), [@&#8203;manisharma](https://github.com/manisharma), [@&#8203;ndyakov](https://github.com/ndyakov), [@&#8203;ofekshenawa](https://github.com/ofekshenawa), [@&#8203;pvragov](https://github.com/pvragov) *** **Full Changelog**: <https://github.com/redis/go-redis/compare/v9.16.0...v9.17.0> ### [`v9.16.0`](https://github.com/redis/go-redis/releases/tag/v9.16.0): 9.16.0 [Compare Source](https://github.com/redis/go-redis/compare/v9.15.1...v9.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](https://github.com/redis/go-redis/tree/master/maintnotifications). #### ✨ New Features - **Trace Filtering**: Add support for filtering traces for specific commands, including pipeline operations and dial operations ([#&#8203;3519](https://github.com/redis/go-redis/pull/3519), [#&#8203;3550](https://github.com/redis/go-redis/pull/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 ([#&#8203;3525](https://github.com/redis/go-redis/pull/3525)) - **Connection Pool**: Ensure re-authentication does not interfere with connection handoff operations ([#&#8203;3547](https://github.com/redis/go-redis/pull/3547)) #### 🔧 Improvements - **Hash Commands**: Update hash command implementations ([#&#8203;3523](https://github.com/redis/go-redis/pull/3523)) - **OpenTelemetry**: Use `metric.WithAttributeSet` to avoid unnecessary attribute copying in redisotel ([#&#8203;3552](https://github.com/redis/go-redis/pull/3552)) #### 📚 Documentation - **Cluster Client**: Add explanation for why `MaxRetries` is disabled for `ClusterClient` ([#&#8203;3551](https://github.com/redis/go-redis/pull/3551)) #### 🧪 Testing & Infrastructure - **E2E Testing**: Upgrade E2E testing framework with improved reliability and coverage ([#&#8203;3541](https://github.com/redis/go-redis/pull/3541)) - **Release Process**: Improved resiliency of the release process ([#&#8203;3530](https://github.com/redis/go-redis/pull/3530)) #### 📦 Dependencies - Bump `rojopolis/spellcheck-github-actions` from 0.51.0 to 0.52.0 ([#&#8203;3520](https://github.com/redis/go-redis/pull/3520)) - Bump `github/codeql-action` from 3 to 4 ([#&#8203;3544](https://github.com/redis/go-redis/pull/3544)) #### 👥 Contributors We'd like to thank all the contributors who worked on this release! [@&#8203;ndyakov](https://github.com/ndyakov), [@&#8203;htemelski-redis](https://github.com/htemelski-redis), [@&#8203;Sovietaced](https://github.com/Sovietaced), [@&#8203;Udhayarajan](https://github.com/Udhayarajan), [@&#8203;boekkooi-impossiblecloud](https://github.com/boekkooi-impossiblecloud), [@&#8203;Pika-Gopher](https://github.com/Pika-Gopher), [@&#8203;cxljs](https://github.com/cxljs), [@&#8203;huiyifyj](https://github.com/huiyifyj), [@&#8203;omid-h70](https://github.com/omid-h70) *** **Full Changelog**: <https://github.com/redis/go-redis/compare/v9.14.0...v9.16.0> ### [`v9.15.1`](https://github.com/redis/go-redis/releases/tag/v9.15.1): Retract v9.15.0 and v9.15.1 ### [`v9.14.1`](https://github.com/redis/go-redis/releases/tag/v9.14.1): 9.14.1 [Compare Source](https://github.com/redis/go-redis/compare/v9.14.0...v9.14.1) #### Changes - fix(otel): Add support for filtering traces for certain commands ([#&#8203;3519](https://github.com/redis/go-redis/pull/3519)) - fix(pool): remove conn from idleConns if present ([#&#8203;3546](https://github.com/redis/go-redis/pull/3546)) #### Contributors We'd like to thank all the contributors who worked on this release! [@&#8203;Sovietaced](https://github.com/Sovietaced), [@&#8203;ndyakov](https://github.com/ndyakov) ### [`v9.14.0`](https://github.com/redis/go-redis/releases/tag/v9.14.0): 9.14.0 [Compare Source](https://github.com/redis/go-redis/compare/v9.13.0...v9.14.0) #### Highlights - Added batch process method to the pipeline ([#&#8203;3510](https://github.com/redis/go-redis/pull/3510)) ### Changes #### 🚀 New Features - Added batch process method to the pipeline ([#&#8203;3510](https://github.com/redis/go-redis/pull/3510)) #### 🐛 Bug Fixes - fix: SetErr on Cmd if the command cannot be queued correctly in multi/exec ([#&#8203;3509](https://github.com/redis/go-redis/pull/3509)) #### 🧰 Maintenance - Updates release drafter config to exclude dependabot ([#&#8203;3511](https://github.com/redis/go-redis/pull/3511)) - chore(deps): bump actions/setup-go from 5 to 6 ([#&#8203;3504](https://github.com/redis/go-redis/pull/3504)) #### Contributors We'd like to thank all the contributors who worked on this release! [@&#8203;elena-kolevska](https://github.com/elena-kolevksa), [@&#8203;htemelski-redis](https://github.com/htemelski-redis) and [@&#8203;ndyakov](https://github.com/ndyakov) </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Update module github.com/redis/go-redis/v9 to v9.17.0
All checks were successful
test / test (pull_request) Successful in 1m7s
4870963af8
Gusted approved these changes 2025-11-20 23:15:40 +00:00
Gusted merged commit 2c32a77327 into main 2025-11-20 23:15:43 +00:00
Gusted deleted branch renovate/github.com-redis-go-redis-v9-9.x 2025-11-20 23:15:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
go-chi/session!67
No description provided.