v9.8.0-beta.1
Pre-releaseChanges
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