releases.shpreview
Redis/go-redis

go-redis

$npx @buildinternet/releases show go-redis
Mon
Wed
Fri
MayJunJulAugSepOctNovDecJanFebMarApr
Less
More
Releases2Avg0/wkVersionsv9.18.0 → v9.19.0
Jun 24, 2025

🚀 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

Jun 6, 2025

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

May 27, 2025

🚀 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

  • Fixed routing reads to loading slave nodes (#3370)
  • Added support for nil lag in XINFO GROUPS (#3369)
  • Fixed pool acquisition timeout issues (#3381)
  • Optimized unnecessary copy operations (#3376)

📚 Documentation

  • Updated documentation for XINFO GROUPS with nil lag support (#3369)
  • Added package-level comments for new features

⚡ Performance and Reliability

  • Optimized ReplaceSpaces function (#3383)
  • Set default value for Options.Protocol in init() (#3387)
  • Exported pool errors for public consumption (#3380)

🔧 Dependencies and Infrastructure

  • Updated Redis CI to version 8.0.1 (#3372)
  • Updated spellcheck GitHub Actions (#3389)
  • Removed unused parameters (#3382, #3384)

🧪 Testing

  • Added unit tests for pool acquisition timeout (#3381)
  • Added unit tests for utility functions (#3377)

👥 Contributors

We would like to thank all the contributors who made this release possible:

@ndyakov, @ofekshenawa, @LINKIWI, @iamamirsalehi, @fukua95, @lzakharov, @DengY11

📝 Changelog

For a complete list of changes, see the full changelog.

Apr 30, 2025

9.8.0 (2025-04-30)

🚀 Highlights

  • Redis 8 Support: Full compatibility with Redis 8.0, including testing and CI integration
  • Enhanced Hash Operations: Added support for new hash commands (HGETDEL, HGETEX, HSETEX) and HSTRLEN command
  • Search Improvements: Enabled Search DIALECT 2 by default and added CountOnly argument for FT.Search

✨ New Features

  • Added support for new hash commands: HGETDEL, HGETEX, HSETEX (#3305)
  • Added HSTRLEN command for hash operations (#2843)
  • Added Do method for raw query by single connection from pool.Conn() (#3182)
  • Prevent false-positive marshaling by treating zero time.Time as empty in isEmptyValue (#3273)
  • Added FailoverClusterClient support for Universal client (#2794)
  • Added support for cluster mode with IsClusterMode config parameter (#3255)
  • Added client name support in HELLO RESP handshake (#3294)
  • Enabled Search DIALECT 2 by default (#3213)
  • Added read-only option for failover configurations (#3281)
  • Added CountOnly argument for FT.Search to use LIMIT 0 0 (#3338)
  • Added DB option support in NewFailoverClusterClient (#3342)
  • Added nil check for the options when creating a client (#3363)

🐛 Bug Fixes

  • Fixed PubSub concurrency safety issues (#3360)
  • Fixed panic caused when argument is nil (#3353)
  • Improved error handling when fetching master node from sentinels (#3349)
  • Fixed connection pool timeout issues and increased retries (#3298)
  • Fixed context cancellation error leading to connection spikes on Primary instances (#3190)
  • Fixed RedisCluster client to consider MASTERDOWN a retriable error (#3164)
  • Fixed tracing to show complete commands instead of truncated versions (#3290)
  • Fixed OpenTelemetry instrumentation to prevent multiple span reporting (#3168)
  • Fixed FT.Search Limit argument and added CountOnly argument for limit 0 0 (#3338)
  • Fixed missing command in interface (#3344)
  • Fixed slot calculation for COUNTKEYSINSLOT command (#3327)
  • Updated PubSub implementation with correct context (#3329)

📚 Documentation

  • Added hash search examples (#3357)
  • Fixed documentation comments (#3351)
  • Added CountOnly search example (#3345)
  • Added examples for list commands: LLEN, LPOP, LPUSH, LRANGE, RPOP, RPUSH (#3234)
  • Added SADD and SMEMBERS command examples (#3242)
  • Updated README.md to use Redis Discord guild (#3331)
  • Updated HExpire command documentation (#3355)
  • Featured OpenTelemetry instrumentation more prominently (#3316)
  • Updated README.md with additional information (#310ce55)

⚡ Performance and Reliability

  • Bound connection pool background dials to configured dial timeout (#3089)
  • Ensured context isn't exhausted via concurrent query (#3334)

🔧 Dependencies and Infrastructure

  • Updated testing image to Redis 8.0-RC2 (#3361)
  • Enabled CI for Redis CE 8.0 (#3274)
  • Updated various dependencies:
    • Bumped golangci/golangci-lint-action from 6.5.0 to 7.0.0 (#3354)
    • Bumped rojopolis/spellcheck-github-actions (#3336)
    • Bumped golang.org/x/net in example/otel (#3308)
  • Migrated golangci-lint configuration to v2 format (#3354)

⚠️ Breaking Changes

  • Enabled Search DIALECT 2 by default (#3213)
  • Dropped RedisGears (Triggers and Functions) support (#3321)
  • Dropped FT.PROFILE command that was never enabled (#3323)

🔒 Security

  • Fixed network error handling on SETINFO (CVE-2025-29923) (#3295)

🧪 Testing

  • Added integration tests for Redis 8 behavior changes in Redis Search (#3337)
  • Added vector types INT8 and UINT8 tests (#3299)
  • Added test codes for search_commands.go (#3285)
  • Fixed example test sorting (#3292)

👥 Contributors

We would like to thank all the contributors who made this release possible:

@alexander-menshchikov, @EXPEbdodla, @afti, @dmaier-redislabs, @four_leaf_clover, @alohaglenn, @gh73962, @justinmir, @LINKIWI, @liushuangbill, @golang88, @gnpaone, @ndyakov, @nikolaydubina, @oleglacto, @andy-stark-redis, @rodneyosodo, @dependabot, @rfyiamcool, @frankxjkuang, @fukua95, @soleymani-milad, @ofekshenawa, @khasanovbi

Mar 24, 2025

Changes

Overview

This is a beta release with support for Redis 8

Important

This release introduces a client-side default dialect for Redis’ search and query capabilities. By default, the client now overrides the server-side dialect with version 2, automatically appending DIALECT 2 to commands like FT.AGGREGATE and FT.SEARCH.

Important: Be aware that the query dialect may impact the results returned. If needed, you can revert to a different dialect version by passing the desired dialect in the arguments of the command you want to execute. For example:

	res2, err := rdb.FTSearchWithArgs(ctx,
		"idx:bicycle",
		"@pickup_zone:[CONTAINS $bike]",
		&redis.FTSearchOptions{
			Params: map[string]interface{}{
				"bike": "POINT(-0.1278 51.5074)",
			},
			DialectVersion: 3,
		},
	).Result()

You can find further details in the query dialect documentation.

🚀 New Features

  • Support TimeSeries commands with RESP 2 protocol (#3184)
  • Support Probabilistic commands with RESP 2 protocol (#3176)
  • Support JSON with RESP 2 protocol (#3146)
  • Support new hash commands: HGETDEL, HGETEX, HSETEX #3305
  • Add FailoverClusterClient support for Universal client #2794
  • Add vector types INT8 and UINT8 #3299
  • Do method for raw query by single conn from pool.Conn() #3182
  • Recognize byte slice for key argument in cluster client hash slot computation #3049
  • Add skip_verify param #3216

🛠️ Improvements

  • Remove direct read from TLS underlying conn #3138
  • Eliminate redundant dial mutex causing unbounded connection queue contention #3088
  • Only check latencies once every 10 seconds with routeByLatency #2795
  • SortByWithCount FTSearchOptions fix #3201
  • feat(command): add ACL commands, validate module categories exist #3262
  • fix(aggregate, search): ft.aggregate bugfixes #3263
  • feat: add unstableresp3 to cluster client #3266
  • fix: flaky ClientKillByFilter test #3268
  • test: add test for INFO in RCE 8 #3269
  • test(redisotel): add tracing hook tests #3270
  • Reinstate read-only lock on hooks access in dialHook to fix data race #3225
  • fix(search): if ft.aggregate use limit when limitoffset is zero #3275
  • fix(search&aggregate):fix error overwrite and typo #3224
  • move regexp.MustCompile close to call #3280
  • fix: nil pointer dereferencing in writeArg #3271
  • fix: race slice for list function of ring client #2931
  • feat: support Elasticache cluster mode by setting IsClusterMode in config #3255
  • fix(redisotel): fix the situation of reporting spans multiple times #3168
  • feat: add hstrlen command for hash #2843
  • fix: Fixed issue with context cancelled error leading to connection spikes on Primary instances #3190
  • add readOnly on failover opts #3281
  • Enable dialect 2 on default #3213
  • Set client name in HELLO handshake during connection initialization #3294
  • fix: connection pool timeout, increase retries #3298
  • fix(redisotel): Show Whole Command on Tracing #3290
  • fix: handle network error on SETINFO #3295
  • Make MASTERDOWN a retriable error in RedisCluster client #3164
  • Bound connection pool background dials to configured dial timeout #3089
  • fix(command): add missing io-thread key in client info #3244
  • Fix race condition in clusterNodes.Addrs() #3219

🧰 Maintenance

  • Improved test coverage & testing infrastructure (#3191, #3233, #3247, #3258, #3279, #3285, #3274, #3304)
  • Improving documentation (#3177, #3226)
  • Examples for improving official documentation (#3116, #3117, #3118, #3125, #3119, #3126, #3140, #3141, #3142, #3143, #3132, #3128, #3183, #3202, #3229, #3241, #3235, #3240, #3260, #3256, #3257, #3251, #3259, #3252, #3292, #3242)

🗑️ Removed

  • chore: drop RedisGears (aka. Triggers and Functions) #3321

Contributors

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

@ndyakov, @a-menshchikov, @rfyiamcool, @rentziass, @LINKIWI, @justinmir, @alingse, @EXPEbdodla, @Cgol9, @aliforever, @flc1125, @monkey92t, @jouir, @smilad, @Oleglacto, @reeshijoshi, @bitsark, @shawnwgit, @ofekshenawa, @vladvildanov, @zhuhaicity, @tomfrombayesians

@monkey92t helped a ton with PR reviews, especially related to redisotel

New Contributors

Full Changelog: https://github.com/redis/go-redis/compare/v9.7.3...v9.8.0-beta.1

Mar 20, 2025

What's Changed

  • fix: handle network error on SETINFO (#3295) (CVE-2025-29923)
  • Deprecating misspelled DisableIndentity flag in the client options.
  • Introducing DisableIdentity flag in the client options.
  • Updating the documentation related to the new flag and the one that was deprecated.

Full Changelog: https://github.com/redis/go-redis/compare/v9.7.1...v9.7.3

What's Changed

Full Changelog: https://github.com/redis/go-redis/compare/v9.6.2...v9.6.3

What's Changed

Full Changelog: https://github.com/redis/go-redis/compare/v9.5.4...v9.5.5

Feb 21, 2025

Changes

  • Recognize byte slice for key argument in cluster client hash slot computation (#3049)
  • fix(search&aggregate):fix error overwrite and typo #3220 (#3224)
  • fix: linter configuration (#3279)
  • fix(search): if ft.aggregate use limit when limitoffset is zero (#3275)
  • Reinstate read-only lock on hooks access in dialHook to fix data race (#3225)
  • fix: flaky ClientKillByFilter test (#3268)
  • chore: fix some comments (#3226)
  • fix(aggregate, search): ft.aggregate bugfixes (#3263)
  • fix: add unstableresp3 to cluster client (#3266)
  • Fix race condition in clusterNodes.Addrs() (#3219)
  • SortByWithCount FTSearchOptions fix (#3201)
  • Eliminate redundant dial mutex causing unbounded connection queue contention (#3088)
  • Add guidance on unstable RESP3 support for RediSearch commands to README (#3177)

🚀 New Features

  • Add guidance on unstable RESP3 support for RediSearch commands to README (#3177)

🐛 Bug Fixes

  • fix(search): if ft.aggregate use limit when limitoffset is zero (#3275)
  • fix: add unstableresp3 to cluster client (#3266)
  • fix(aggregate, search): ft.aggregate bugfixes (#3263)
  • SortByWithCount FTSearchOptions fix (#3201)
  • Recognize byte slice for key argument in cluster client hash slot computation (#3049)

Contributors

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

@ofekshenawa, @Cgol9, @LINKIWI, @shawnwgit, @zhuhaicity, @bitsark, @vladvildanov, @ndyakov

Full Changelog: https://github.com/redis/go-redis/compare/v9.7.0...v9.7.1

Oct 17, 2024

Changes

🚀 New Features

  • Support Redis search and query capabilities (#2801, #3098)
  • Support indexing and querying empty values (#3053)
  • Support for Redis JSON with RESP2 protocol (#3146)

🛠️ Improvements

We're glad to announce that we added a search and query support in the current release.

🧰 Maintenance

  • Documentation examples (#3102, #3106, #3110, #3111, #3113, #3114, #3115, #3123, #3124)
  • retract v9.5.3 of redisotel and other extra packages (#3108)
  • Add test coverage reporting and Codecov badge (#3055)
  • Updated module version that points to retracted package version (#3074)

Contributors

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

@andy-stark-redis, @ipechorin, @ofekshenawa and @vladvildanov

Oct 14, 2024

Changes

🐛 Bug Fixes

  • Fixed bug with broken TLS sessions (#3145)

Contributors

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

@ofekshenawa @vladvildanov @rentziass

Sep 26, 2024

Changes

🚀 New Features

  • Support Redis search and query capabilities (#2801, #3098)
  • Support indexing and querying empty values (#3053)

🛠️ Improvements

We're glad to announce that we added a search and query support in the current release.

🧰 Maintenance

  • Documentation examples (#3102, #3106, #3110, #3111, #3113, #3114, #3115, #3123, #3124)
  • retract v9.5.3 of redisotel and other extra packages (#3108)
  • Add test coverage reporting and Codecov badge (#3055)
  • Updated module version that points to retracted package version (#3074)

Contributors

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

@andy-stark-redis, @ipechorin, @ofekshenawa and @vladvildanov

Jul 25, 2024

Changes

9.6

This release contains all new features from version 9.6.

🚀 New Features

  • Support Hash-field expiration commands (#2991)
  • Support Hash-field expiration commands in Pipeline & Fix HExpire HExpireWithArgs expiration (#3038)
  • Support NOVALUES parameter for HSCAN (#2925)
  • Added test case for CLIENT KILL with MAXAGE option (#2971)
  • Add support for XREAD last entry (#3005)
  • Reduce the type assertion of CheckConn (#3066)

9.6.1

In addition minor changes were performed to retract version 9.5.3 and 9.5.4 that were released accidentally.

🧰 Maintenance

  • Change CI to 7.4.0-RC2 (#3070)

🎁 Package Distribution

  • Retract versions 9.5.3 and 9.5.4 (#3069)

Contributors

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

@LINKIWI, @b1ron, @gerzse, @haines, @immersedin, @naiqianz, @ofekshenawa, @srikar-jilugu, @tzongw, @vladvildanov, @vmihailenco and @monkey92t

Jul 19, 2024

Changes

🚀 New Features

  • Support Hash-field expiration commands (#2991)
  • Support Hash-field expiration commands in Pipeline & Fix HExpire HExpireWithArgs expiration (#3038)
  • Support NOVALUES parameter for HSCAN (#2925)
  • Added test case for CLIENT KILL with MAXAGE option (#2971)
  • Add support for XREAD last entry (#3005)
  • Reduce the type assertion of CheckConn (#3066)

🛠️ Improvements

This release includes support for Redis Community Edition (CE) 7.4.0, ensuring compatibility with the latest features and improvements introduced in Redis CE 7.4.0.

🧰 Maintenance

  • chore(deps): bump golangci/golangci-lint-action from 4 to 6 (#2993)
  • Avoid unnecessary retry delay in cluster client following MOVED and ASK redirection (#3048)
  • add test for tls connCheck #3025 (#3047)
  • fix node routing in slotClosestNode (#3043)
  • Update pubsub.go (#3042)
  • Change monitor test to run manually (#3041)
  • chore(deps): bump rojopolis/spellcheck-github-actions from 0.36.0 to 0.38.0 (#3028)
  • Add (*StatusCmd).Bytes() method (#3030)
  • chore(deps): bump golang.org/x/net from 0.20.0 to 0.23.0 in /example/otel (#3000)

Contributors

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

@LINKIWI, @b1ron, @dependabot, @dependabot[bot], @gerzse, @haines, @immersedin, @naiqianz, @ofekshenawa, @srikar-jilugu, @tzongw, @vladvildanov and @vmihailenco @monkey92t

Jun 20, 2024

Changes

🚀 New Features

  • Add support for XREAD last entry (#3005)
Jun 19, 2024

Changes

🚀 New Features

  • Support Hash-field expiration commands (#2991)
  • Support NOVALUES parameter for HSCAN (#2925)
  • Added test case for CLIENT KILL with MAXAGE option (#2971)

🛠️ Improvements

This release includes support for Redis Community Edition (CE) 7.4.0, ensuring compatibility with the latest features and improvements introduced in Redis CE 7.4.0.

May 31, 2024

Changes

  • fix: fix #2681 (#2998)
  • Remove skipping span creation by checking parent spans (#2980)
  • Handle IPv6 in isMovedError (#2981)
  • Fix XGroup first pos key (#2983)
  • Adding BitfieldRo in BitMapCmdable interface (#2962)
  • Optimize docs useless imports and typo (#2970)
  • chore: fix some comments (#2967)
  • Fix for issues #2959 and #2960 (#2961)
  • fix: #2956 (#2957)
  • fix misuses of a vs an (#2936)
  • add server address and port span attributes to redis otel trace instrumentation (#2826)
  • chore(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /example/otel (#2944)
  • Remove secrets from Redis Enterprise CI (#2938)
  • Fix monitor on go 1.19 (#2908)
  • chore(deps): bump google.golang.org/protobuf from 1.28.1 to 1.33.0 in /extra/redisprometheus (#2942)
  • Change RE image to public RE image (#2935)

Contributors

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

@XSAM, @akash14darshan, @daviddzxy, @dependabot, @dependabot[bot], @esara, @hakusai22, @hishope, @kindknow, @monkey92t, @ofekshenawa, @singular-seal and deferdeter

Feb 20, 2024

Changes

Note: This release fixes the SETINFO issue from 9.5.0. This release restores connections to redis versions that do not have SETINFO. Thank you to our amazing community for their help with this issue

🐛 Bug Fixes

  • bug: Fix SETINFO ensuring it is set-and-forget (#2915)

🧰 Maintenance

  • docs: README update to highlight how to disable sending client identification (#2913)

Contributors

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

@ofekshenawa

Feb 18, 2024

Changes

Note: This release implements SETINFO by default, and currently breaks with Redis versions prior to 7.2 due to the way the change was implemented. It should have failed silently, but did not. 9.5.1 will fix this. To disable this behaviour, with this release, please DisableIdentity: true in your RedisOptions struct.

🚀 New Features

  • Add object fraq command (#2844)
  • Speed up connections by sending SetInfo via a pipeline (#2880)
  • Add helpers to set libinfo without panic (#2724)

🧰 Maintenance

  • Remove unnecessary Node project definition file (#2863)
  • Add support for specifying bitcount unit as byte or bit, byte default (#2887)
  • fix ConnPool race in newConn (#2885)

📚 Documentation & Testing

  • Docs: update features (#2846)
  • Docs: add bytes in scan struct example (#2836)
  • Tests: add ut for util_test (#2840)

⚙️ Dependencies & Infrastructure

  • chore: update OpenTelemetry and Uptrace to the latest version (#2864)
  • chore(deps): bump release-drafter/release-drafter from 5 to 6 (#2883)
  • chore(deps): bump rojopolis/spellcheck-github-actions from 0.35.0 to 0.36.0 (#2889)
  • chore(deps): bump golangci/golangci-lint-action from 3 to 4 (#2890)
  • Change RE image to 7.2.4-108 (#2884)
  • Add CredentialsProvider to ClusterOptions (#2791)

Contributors

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

@OlegStotsky, @abusizhishen, @dependabot, @dependabot[bot], @johnduhart, @limotley, @ofekshenawa, @peczenyj, @rfyiamcool, and @vmihailenco

Jan 7, 2024

Changes

Breaking Changes

  • Revert #2818 due to it be a breaking change (#2861)

🚀 New Features

  • Add Suffix support to default client set info (#2852)

🧰 Maintenance

  • return raw value instead of function calling in Result() (#2831)
  • Add Redis Enterprise tests (#2847)

Contributors

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

@lowang-bh and @ofekshenawa

Latest
v9.19.0
Tracking Since
Jun 3, 2021
Last checked May 1, 2026