build(deps): update module github.com/redis/go-redis/v9 to v9.18.0

This MR contains the following updates:

Package Type Update Change
github.com/redis/go-redis/v9 require minor v9.17.3 -> v9.18.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.18.0: 9.18.0

Compare Source

Redis 8.6 Support

Added support for Redis 8.6, including new commands and features for streams idempotent production and HOTKEYS.

Smart Client Handoff (Maintenance Notifications) for Cluster

note: Pending RS version release

This release introduces comprehensive support for Redis Enterprise Cluster maintenance notifications via SMIGRATING/SMIGRATED push notifications. The client now automatically handles slot migrations by:

  • Relaxing timeouts during migration (SMIGRATING) to prevent false failures
  • Triggering lazy cluster state reloads upon completion (SMIGRATED)
  • Enabling seamless operations during Redis Enterprise maintenance windows

(#​3643) by @​ndyakov

OpenTelemetry Native Metrics Support

Added comprehensive OpenTelemetry metrics support following the OpenTelemetry Database Client Semantic Conventions. The implementation uses a Bridge Pattern to keep the core library dependency-free while providing optional metrics instrumentation through the new extra/redisotel-native package.

Metric groups include:

  • Command metrics: Operation duration with retry tracking
  • Connection basic: Connection count and creation time
  • Resiliency: Errors, handoffs, timeout relaxation
  • Connection advanced: Wait time and use time
  • Pubsub metrics: Published and received messages
  • Stream metrics: Processing duration and maintenance notifications

(#​3637) by @​ofekshenawa

New Features

  • HOTKEYS Commands: Added support for Redis HOTKEYS feature for identifying hot keys based on CPU consumption and network utilization (#​3695) by @​ofekshenawa
  • Streams Idempotent Production: Added support for Redis 8.6+ Streams Idempotent Production with ProducerID, IdempotentID, IdempotentAuto in XAddArgs and new XCFGSET command (#​3693) by @​ofekshenawa
  • NaN Values for TimeSeries: Added support for NaN (Not a Number) values in Redis time series commands (#​3687) by @​ofekshenawa
  • DialerRetries Options: Added DialerRetries and DialerRetryTimeout to ClusterOptions, RingOptions, and FailoverOptions (#​3686) by @​naveenchander30
  • ConnMaxLifetimeJitter: Added jitter configuration to distribute connection expiration times and prevent thundering herd (#​3666) by @​cyningsun
  • Digest Helper Functions: Added DigestString and DigestBytes helper functions for client-side xxh3 hashing compatible with Redis DIGEST command (#​3679) by @​ofekshenawa
  • SMIGRATED New Format: Updated SMIGRATED parser to support new format and remember original host:port (#​3697) by @​ndyakov
  • Cluster State Reload Interval: Added cluster state reload interval option for maintenance notifications (#​3663) by @​ndyakov

🐛 Bug Fixes

  • PubSub nil pointer dereference: Fixed nil pointer dereference in PubSub after WithTimeout() - pubSubPool is now properly cloned (#​3710) by @​Copilot
  • MaintNotificationsConfig nil check: Guard against nil MaintNotificationsConfig in initConn (#​3707) by @​veeceey
  • wantConnQueue zombie elements: Fixed zombie wantConn elements accumulation in wantConnQueue (#​3680) by @​cyningsun
  • XADD/XTRIM approx flag: Fixed XADD and XTRIM to use = when approx is false (#​3684) by @​ndyakov
  • Sentinel timeout retry: When connection to a sentinel times out, attempt to connect to other sentinels (#​3654) by @​cxljs

Performance

  • Fuzz test optimization: Eliminated repeated string conversions, used functional approach for cleaner operation selection (#​3692) by @​feiguoL
  • Pre-allocate capacity: Pre-allocate slice capacity to prevent multiple capacity expansions (#​3689) by @​feelshu

🧪 Testing

  • Comprehensive TLS tests: Added comprehensive TLS tests and example for standalone, cluster, and certificate authentication (#​3681) by @​ndyakov
  • Redis 8.6: Updated CI to use Redis 8.6-pre (#​3685) by @​ndyakov

🧰 Maintenance

  • Deprecation warnings: Added deprecation warnings for commands based on Redis documentation (#​3673) by @​ndyakov
  • Use errors.Join(): Replaced custom error join function with standard library errors.Join() (#​3653) by @​cxljs
  • Use Go 1.21 min/max: Use Go 1.21's built-in min/max functions (#​3656) by @​cxljs
  • Proper formatting: Code formatting improvements (#​3670) by @​12ya
  • Set commands documentation: Added comprehensive documentation to all set command methods (#​3642) by @​iamamirsalehi
  • MaxActiveConns docs: Added default value documentation for MaxActiveConns (#​3674) by @​codykaup
  • README example update: Updated README example (#​3657) by @​cxljs
  • Cluster maintnotif example: Added example application for cluster maintenance notifications (#​3651) by @​ndyakov

👥 Contributors

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

@​12ya, @​Copilot, @​codykaup, @​cxljs, @​cyningsun, @​feelshu, @​feiguoL, @​iamamirsalehi, @​naveenchander30, @​ndyakov, @​ofekshenawa, @​veeceey


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

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

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

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


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

This MR has been generated by Renovate Bot.

Edited by GitLab Dependency Bot

Merge request reports

Loading