Skip to content

Update module github.com/redis/go-redis/v9 to v9.19.0#11

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/github.com-redis-go-redis-v9-9.x
Open

Update module github.com/redis/go-redis/v9 to v9.19.0#11
renovate[bot] wants to merge 1 commit intomainfrom
renovate/github.com-redis-go-redis-v9-9.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Oct 14, 2024

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
github.com/redis/go-redis/v9 v9.6.1v9.19.0 age confidence

Release Notes

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

v9.19.0: 9.19.0

Compare Source

🚀 Highlights

FIPS-Compatible Script Helper

Script now supports a FIPS-safe execution mode that avoids client-side SHA-1 computation, which is blocked in strict FIPS environments. A new NewScriptServerSHA constructor uses SCRIPT LOAD to obtain and cache the digest from the server, then runs commands via EVALSHA/EVALSHA_RO. Falls back to EVAL/EVALRO if loading fails, and transparently retries once on NOSCRIPT. The default behavior is unchanged for existing users.

(#​3700) by @​chaitanyabodlapati

FT.AGGREGATE Step-Based Pipeline Builder

Added a new step-based FT.AGGREGATE pipeline API via FTAggregateOptions.Steps, allowing LOAD, APPLY, GROUPBY, and SORTBY (with per-step MAX) to be repeated and interleaved in arbitrary order — matching Redis's native multi-stage aggregation semantics. The legacy Load/Apply/GroupBy/SortBy/SortByMax fields are now deprecated.

(#​3782) by @​ndyakov

Raw RESP Protocol Access

Added DoRaw and DoRawWriteTo methods for executing arbitrary commands and reading the raw RESP response. Useful for proxying, custom protocol inspection, and working with commands not yet wrapped by go-redis.

(#​3713) by @​ofekshenawa

Configurable Dial Retry Backoff

Added DialerRetryBackoff option (plumbed through Options, ClusterOptions, RingOptions, FailoverOptions) to let callers customize the delay between failed dial attempts. Helpers DialRetryBackoffConstant and DialRetryBackoffExponential (with jitter and cap) are provided out of the box. Dial timeout is now also applied per attempt rather than across all retries.

(#​3706, #​3705) by @​mwhooker

✨ New Features

  • FT.AGGREGATE Steps: Step-based pipeline builder for FT.AGGREGATE with support for repeated/interleaved LOAD, APPLY, GROUPBY, and SORTBY stages (#​3782) by @​ndyakov
  • VectorSet commands: Added VISMEMBER and WITHATTRIBS support (#​3753) by @​romanpovol
  • FIPS-safe Script: NewScriptServerSHA uses SCRIPT LOAD to obtain the digest from the server, avoiding client-side SHA-1 (#​3700) by @​chaitanyabodlapati
  • Raw RESP access: DoRaw and DoRawWriteTo for raw RESP protocol access (#​3713) by @​ofekshenawa
  • Dial retry backoff: DialerRetryBackoff function option with constant and exponential helpers (#​3706) by @​mwhooker
  • Typed NOSCRIPT error: Redis NOSCRIPT replies are now surfaced as a typed error for easier handling (#​3738) by @​LINKIWI
  • PubSub ClientSetName: Added ClientSetName method to PubSub (#​3727) by @​Flack74
  • ReplicaOf: New ReplicaOf method replaces the deprecated SlaveOf (#​3720) by @​Copilot
  • HSCAN BinaryUnmarshaler: HScan now supports types implementing encoding.BinaryUnmarshaler (#​3768) by @​Aaditya-dubey1

🐛 Bug Fixes

  • Auto hostname type detection: Improved endpoint type detection for maintenance notifications using DNS-based classification; handles empty hosts and expanded private-IP ranges (#​3789) by @​ndyakov
  • HELLO fallback: Don't send CLIENT MAINT_NOTIFICATIONS handshake when HELLO fails and connection falls back to RESP2; fail fast when explicitly enabled with RESP3 (#​3788) by @​ndyakov
  • Dial TCP retry: ShouldRetry now treats net.OpError with Op == "dial" timeout errors as safe to retry since no command was sent (#​3787) by @​vladisa88
  • wrappedOnClose leak: Fixed resource leak caused by repeatedly wrapping baseClient close logic; replaced with a bounded, concurrency-safe named-hook registry (#​3785) by @​ndyakov
  • Pool Close() on stale connections: Suppress close errors (e.g., TLS closeNotify timeouts) for connections already dropped by the server due to idle timeout (#​3778) by @​ofekshenawa
  • FIFO waiter ordering: Fixed race in ConnStateMachine.notifyWaiters that could wake multiple waiters under a single mutex hold and violate FIFO ordering (#​3777) by @​0x48core
  • Lua READONLY detection: Detect READONLY errors embedded in Lua script error messages on read-only replicas so commands are correctly retried (#​3769) by @​zhengjilei
  • VectorScoreSliceCmd RESP2: Fixed VSimWithScores, VSimWithArgsWithScores, and VLinksWithScores which were broken on RESP2 connections returning flat arrays instead of maps (#​3767) by @​Copilot
  • Closed connection handling: Two fixes for closed connection handling in the pool (#​3764) by @​cxljs
  • ZRangeArgs Rev: Fixed ZRangeArgs with Rev + ByScore/ByLex incorrectly swapping Start/Stop, breaking ZRANGESTORE (#​3751) by @​Copilot
  • OTel metric instrument types: Fixed metric instrument types in redisotel-native (#​3743) by @​ofekshenawa
  • Options.clone() data race: Fixed data race when cloning Options (#​3739) by @​rubensayshi
  • Connection closure metrics: Fixed connection closure metrics and enabled all metric groups by default in redisotel-native (#​3735) by @​ofekshenawa
  • OTel semconv v1.38.0: Use metric definition from otel/semconv/v1.38.0 in redisotel-native (#​3731) by @​wzy9607
  • SETNX semantics: Use SET ... NX instead of the deprecated SETNX command (#​3723) by @​ndyakov
  • TIME keyless routing: Mark TIME as a keyless command for correct cluster routing (#​3722) by @​fatal10110
  • Dial timeout per retry: Dial timeout now applies per attempt instead of across all retry attempts combined (#​3705) by @​mwhooker
  • Cluster metrics attributes: Fixed pool.name being appended per node, which corrupted and dropped user-provided custom attributes (#​3699) by @​Jesse-Bonfire
  • initConn nil dereference: Fixed nil pointer dereference and potential deadlock in *baseClient.initConn(); added explicit nil option guards to client constructors (#​3676) by @​olde-ducke

⚡ Performance

  • RESP reader: Optimized RESP reader by eliminating intermediate string allocations (#​3774) by @​Aaditya-dubey1
  • Inline rendezvous hashing: Replaced github.com/dgryski/go-rendezvous dependency with an in-repo implementation in internal/hashtag, reducing the dependency graph while preserving algorithm parity (#​3762) by @​bigsk05

🧪 Testing & Infrastructure

  • Release automation: Added repository, ref, and client-libs-test-image-tag inputs to the run-tests composite action; redis-version is now optional so unstable builds use REDIS_VERSION from the Makefile (#​3749) by @​dariaguy
  • Go 1.24: Updated minimum Go version to 1.24 and use -compat=1.24 in release scripts (#​3714, #​3754) by @​ndyakov, @​cxljs

🧰 Maintenance

  • Pool state machine: Removed redundant Conn.closed atomic field in favor of the state machine's StateClosed (#​3783) by @​cxljs
  • OTel SDK: Updated OpenTelemetry SDK dependencies in redisotel/redisotel-native (#​3770) by @​ndyakov
  • Go 1.21+ built-ins: Use maps.Keys, slices.Collect, slices.Contains, clear(), and slices.SortFunc instead of custom helpers (#​3758, #​3746) by @​cxljs
  • HGetAll docs: Added Go doc comment to HGetAll describing behavior and complexity (#​3776) by @​0x48core
  • Docs links: Fixed irrelevant docs links (#​3724) by @​olzhas-sabiyev
  • Examples cleanup: Removed throughput binary from examples (#​3733) by @​ndyakov

👥 Contributors

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

@​0x48core, @​Aaditya-dubey1, @​Copilot, @​Flack74, @​Jesse-Bonfire, @​LINKIWI, @​bigsk05, @​chaitanyabodlapati, @​cxljs, @​dariaguy, @​fatal10110, @​mwhooker, @​ndyakov, @​ofekshenawa, @​olde-ducke, @​olzhas-sabiyev, @​romanpovol, @​rubensayshi, @​vladisa88, @​wzy9607, @​zhengjilei


Full Changelog: redis/go-redis@v9.18.0...v9.19.0

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

v9.17.3: 9.17.3

Compare Source

🐛 Bug Fixes

  • Connection Pool: Fixed zombie wantConn elements accumulation in wantConnQueue that could cause resource leaks in high concurrency scenarios with dial failures (#​3680) by @​cyningsun
  • Stream Commands: Fixed XADD and XTRIM commands to use exact threshold (=) when Approx is false, ensuring precise stream trimming behavior (#​3684) by @​ndyakov
  • Connection Pool: Added ConnMaxLifetimeJitter configuration to distribute connection expiration times and prevent the thundering herd problem when many connections expire simultaneously (#​3666) by @​cyningsun
  • Client Options: Added DialerRetries and DialerRetryTimeout fields to ClusterOptions, RingOptions, and FailoverOptions to allow configuring connection retry behavior for cluster, ring, and sentinel clients (#​3686) by @​naveenchander30

Contributors

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

@​cyningsun, @​naveenchander30, and @​ndyakov


Full Changelog: redis/go-redis@v9.17.2...v9.17.3

v9.17.2: 9.17.2

Compare Source

🐛 Bug Fixes

  • Connection Pool: Fixed critical race condition in turn management that could cause connection leaks when dial goroutines complete after request timeout (#​3626) by @​cyningsun
  • Context Timeout: Improved context timeout calculation to use minimum of remaining time and DialTimeout, preventing goroutines from waiting longer than necessary (#​3626) by @​cyningsun

🧰 Maintenance

  • chore(deps): bump rojopolis/spellcheck-github-actions from 0.54.0 to 0.55.0 (#​3627)

Contributors

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

@​cyningsun and @​ndyakov

v9.17.1: 9.17.1

Compare Source

🐛 Bug Fixes

🧰 Maintenance

  • chore(deps): bump golangci/golangci-lint-action from 9.0.0 to 9.1.0 (#​3609)
  • chore(deps): bump actions/checkout from 5 to 6 (#​3610)
  • chore(script): fix help call in tag.sh (#​3606) by @​ndyakov

Contributors

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

@​marcoferrer and @​ndyakov

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: redis/go-redis@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: redis/go-redis@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

v9.13.0: 9.13.0

Compare Source

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

v9.12.1: 9.12.1

Compare Source

🚀 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

v9.12.0: 9.12.0

Compare Source

🚀 Highlights

  • This release includes support for Redis 8.2.
  • Introduces an experimental Query Builders for FTSearch, FTAggregate and other search commands.
  • Adds support for EPSILON option in FT.VSIM.
  • Includes bug fixes and improvements contributed by the community related to ring and redisotel.

Changes

  • Improve stale issue workflow (#​3458)
  • chore(ci): Add 8.2 rc2 pre build for CI (#​3459)
  • Added new stream commands (#​3450)
  • feat: Add "skip_verify" to Sentinel (#​3428)
  • fix: errors.Join requires Go 1.20 or later (#​3442)
  • DOC-4344 document quickstart examples (#​3426)
  • feat(bitop): add support for the new bitop operations (#​3409)

🚀 New Features

  • feat: recover addIdleConn may occur panic (#​2445)
  • feat(ring): specify custom health check func via HeartbeatFn option (#​2940)
  • Add Query Builder for RediSearch commands (#​3436)
  • add configurable buffer sizes for Redis connections (#​3453)
  • Add VAMANA vector type to RediSearch (#​3449)
  • VSIM add EPSILON option (#​3454)
  • Add closing support to otel metrics instrumentation (#​3444)

🐛 Bug Fixes

  • fix(redisotel): fix buggy append in reportPoolStats (#​3122)
  • fix(search): return results even if doc is empty (#​3457)
  • [ISSUE-3402]: Ring.Pipelined return dial timeout error (#​3403)

🧰 Maintenance

  • Merges stale issues jobs into one job with two steps (#​3463)
  • improve code readability (#​3446)
  • chore(release): 9.12.0-beta.1 (#​3460)
  • DOC-5472 time series doc examples (#​3443)
  • Add VAMANA compression algorithm tests (#​3461)
  • bumped redis 8.2 version used in the CI/CD (#​3451)

Contributors

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

@​andy-stark-redis, @​cxljs, @​elena-kolevska, @​htemelski-redis, @​jouir, @​monkey92t, @​ndyakov, @​ofekshenawa, @​rokn, @​smnvdev, @​strobil and @​wzy9607

New Contributors

v9.11.0: 9.11.0

Compare Source

🚀 Highlights

Fixes TxPipeline to work correctly in cluster scenarios, allowing execution of commands
only in the same slot for a given transaction.

Changes

🚀 New Features

  • Set cluster slot for scan commands, rather than random (#​2623)
  • Add CredentialsProvider field to UniversalOptions (#​2927)
  • feat(redisotel): add WithCallerEnabled option (#​3415)

🐛 Bug Fixes

  • fix(txpipeline): keyless commands should take the slot of the keyed (#​3411)
  • fix(loading): cache the loaded flag for slave nodes (#​3410)
  • fix(txpipeline): should return error on multi/exec on multiple slots (#​3408)
  • fix: check if the shard exists to avoid returning nil (#​3396)

🧰 Maintenance

  • feat: optimize connection pool waitTurn (#​3412)
  • chore(ci): update CI redis builds (#​3407)
  • chore: remove a redundant method from Ring, Client and ClusterClient (#​3401)
  • test: refactor TestBasicCredentials using table-driven tests (#​3406)
  • perf: reduce unnecessary memory allocation operations (#​3399)
  • fix: insert entry during iterating over a map (#​3398)
  • DOC-5229 probabilistic data type examples (#​3413)
  • chore(deps): bump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (#​3414)

Contributors

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

@​andy-stark-redis, @​boekkooi-impossiblecloud, @​cxljs, @​dcherubini, @​iamamirsalehi, @​ndyakov, @​pete-woods, @​twz915

v9.10.0: 9.10.0

Compare Source

Experimental support for vector sets!

🚀 Highlights

go-redis now supports vector sets. This data type is marked as "in preview" in Redis and its support in go-redis is marked as experimental. You can find examples in the documentation and in the doctests folder.

Changes

🚀 New Features

🧰 Maintenance

  • Add the missing NewFloatSliceResult for testing (#​3393)
  • DOC-5078 vector set examples (#​3394)

Contributors

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

@​AndBobsYourUncle, @​andy-stark-redis, @​fukua95 and @​ndyakov

v9.9.0: 9.9.0

Compare Source

🚀 Highlights

  • Token-based Authentication: Added StreamingCredentialsProvider for dynamic credential updates (experimental)
  • Connection Statistics: Added connection waiting statistics for better monitoring
  • Failover Improvements: Added ParseFailoverURL for easier failover configuration
  • Ring Client Enhancements: Added shard access methods for better Pub/Sub management

✨ New Features

  • Added StreamingCredentialsProvider for token-based authentication (#​3320)
    • Supports dynamic credential updates
    • Includes connection close hooks
    • Note: Currently marked as experimental
  • Added ParseFailoverURL for parsing failover URLs (#​3362)
  • Added connection waiting statistics (#​2804)
  • Added new utility functions:
    • ParseFloat and MustParseFloat in public utils package (#​3371)
    • Unit tests for Atoi, ParseInt, ParseUint, and ParseFloat (#​3377)
  • Added Ring client shard access methods:
    • GetShardClients() to retrieve all active shard clients
    • GetShardClientForKey(key string) to get the shard client for a specific key (#​3388)

🐛 Bug Fixes

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • 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 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 was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from f6bba80 to be1aa47 Compare October 17, 2024 11:40
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.6.2 Update module github.com/redis/go-redis/v9 to v9.7.0 Oct 17, 2024
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.7.0 Update module github.com/redis/go-redis/v9 to v9.7.1 Feb 21, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from be1aa47 to f0033c2 Compare February 21, 2025 14:34
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.7.1 Update module github.com/redis/go-redis/v9 to v9.7.1 - autoclosed Mar 11, 2025
@renovate renovate Bot closed this Mar 11, 2025
@renovate renovate Bot deleted the renovate/github.com-redis-go-redis-v9-9.x branch March 11, 2025 07:17
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.7.1 - autoclosed Update module github.com/redis/go-redis/v9 to v9.7.1 Mar 11, 2025
@renovate renovate Bot reopened this Mar 11, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 12ff0c3 to f0033c2 Compare March 11, 2025 10:19
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.7.1 Update module github.com/redis/go-redis/v9 to v9.7.3 Mar 20, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from f0033c2 to 5004536 Compare March 20, 2025 16:44
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 5004536 to a0f027c Compare April 30, 2025 13:46
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.7.3 Update module github.com/redis/go-redis/v9 to v9.8.0 Apr 30, 2025
@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Apr 30, 2025

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 1 additional dependency was updated

Details:

Package Change
github.com/cespare/xxhash/v2 v2.2.0 -> v2.3.0

@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from a0f027c to 4f8480c Compare May 27, 2025 20:43
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.8.0 Update module github.com/redis/go-redis/v9 to v9.9.0 May 27, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 4f8480c to eaadb79 Compare June 6, 2025 21:17
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.9.0 Update module github.com/redis/go-redis/v9 to v9.10.0 Jun 6, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from eaadb79 to 6abe0b1 Compare June 24, 2025 13:02
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.10.0 Update module github.com/redis/go-redis/v9 to v9.11.0 Jun 24, 2025
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.11.0 Update module github.com/redis/go-redis/v9 to v9.11.0 - autoclosed Jul 4, 2025
@renovate renovate Bot closed this Jul 4, 2025
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.11.0 - autoclosed Update module github.com/redis/go-redis/v9 to v9.11.0 Jul 4, 2025
@renovate renovate Bot reopened this Jul 4, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 92ecc17 to 6abe0b1 Compare July 4, 2025 11:42
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 6abe0b1 to e2409d5 Compare August 5, 2025 17:12
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.11.0 Update module github.com/redis/go-redis/v9 to v9.12.0 Aug 5, 2025
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.12.0 Update module github.com/redis/go-redis/v9 to v9.12.1 Aug 11, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from e2409d5 to c409e26 Compare August 11, 2025 18:57
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.13.0 Update module github.com/redis/go-redis/v9 to v9.13.0 - autoclosed Sep 4, 2025
@renovate renovate Bot closed this Sep 4, 2025
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.13.0 - autoclosed Update module github.com/redis/go-redis/v9 to v9.13.0 Sep 4, 2025
@renovate renovate Bot reopened this Sep 4, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 6aefc70 to af62699 Compare September 4, 2025 21:36
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.13.0 Update module github.com/redis/go-redis/v9 to v9.13.0 - autoclosed Sep 7, 2025
@renovate renovate Bot closed this Sep 7, 2025
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.13.0 - autoclosed Update module github.com/redis/go-redis/v9 to v9.13.0 Sep 8, 2025
@renovate renovate Bot reopened this Sep 8, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from afe184a to af62699 Compare September 8, 2025 00:33
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.13.0 Update module github.com/redis/go-redis/v9 to v9.14.0 Sep 10, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from af62699 to 27481c0 Compare September 10, 2025 12:23
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 27481c0 to b69fb7c Compare October 19, 2025 03:03
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.14.0 Update module github.com/redis/go-redis/v9 to v9.14.1 Oct 19, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from b69fb7c to 3f9458c Compare October 23, 2025 17:38
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.14.1 Update module github.com/redis/go-redis/v9 to v9.16.0 Oct 23, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 3f9458c to 8f25b1b Compare November 19, 2025 21:35
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.16.0 Update module github.com/redis/go-redis/v9 to v9.17.0 Nov 19, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 8f25b1b to 3107b97 Compare November 26, 2025 12:31
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.17.0 Update module github.com/redis/go-redis/v9 to v9.17.1 Nov 26, 2025
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 3107b97 to 6c2519e Compare December 1, 2025 16:12
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.17.1 Update module github.com/redis/go-redis/v9 to v9.17.2 Dec 1, 2025
@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Dec 15, 2025

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 2 additional dependencies were updated
  • The go directive was updated for compatibility reasons

Details:

Package Change
go 1.21.0 -> 1.24
github.com/cespare/xxhash/v2 v2.2.0 -> v2.3.0
golang.org/x/sys v0.4.0 -> v0.30.0

@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 6c2519e to 2c294b3 Compare January 25, 2026 12:47
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.17.2 Update module github.com/redis/go-redis/v9 to v9.17.3 Jan 25, 2026
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from 2c294b3 to cc783e9 Compare February 16, 2026 17:48
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.17.3 Update module github.com/redis/go-redis/v9 to v9.18.0 Feb 16, 2026
@renovate renovate Bot force-pushed the renovate/github.com-redis-go-redis-v9-9.x branch from cc783e9 to fa302d6 Compare April 28, 2026 15:52
@renovate renovate Bot changed the title Update module github.com/redis/go-redis/v9 to v9.18.0 Update module github.com/redis/go-redis/v9 to v9.19.0 Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants