Releases: redis/go-redis
v9.8.0-beta.1
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 frompool.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 inclient 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
- @justinmir made their first contribution in #2795
- @Cgol9 made their first contribution in #3201
- @shawnwgit made their first contribution in #3219
- @zhuhaicity made their first contribution in #3226
- @jouir made their first contribution in #3216
- @flc1125 made their first contribution in #3270
- @bitsark made their first contribution in #3224
- @alingse made their first contribution in #3280
- @aliforever made their first contribution in #3271
- @tomfrombayesians made their first contribution in #3285
- @reeshijoshi made their first contribution in #3255
- @EXPEbdodla made their first contribution in #3190
- @smilad made their first contribution in #3281
- @rodneyosodo made their first contribution in #3290
- @a-menshchikov made their first contribution in #2794
- @Oleglacto made their first contribution in #3182
Full Changelog: v9.7.3...v9.8.0-beta.1
v9.7.3
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: v9.7.1...v9.7.3
v9.6.3
What's Changed
- fix: handle network error on SETINFO (#3295) (CVE-2025-29923)
Full Changelog: v9.6.2...v9.6.3
v9.5.5
What's Changed
- fix: handle network error on SETINFO (#3295) (CVE-2025-29923)
Full Changelog: v9.5.4...v9.5.5
v9.7.1
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: v9.7.0...v9.7.1
9.7.0
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
9.6.2
Changes
π Bug Fixes
- Fixed bug with broken TLS sessions (#3145)
Contributors
We'd like to thank all the contributors who worked on this release!
9.7.0-beta.1
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
9.6.1
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
9.6.0
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