...

Text file src/github.com/redis/go-redis/v9/RELEASE-NOTES.md

Documentation: github.com/redis/go-redis/v9

     1# Release Notes
     2
     3# 9.14.0 (2025-09-10)
     4
     5## Highlights
     6- Added batch process method to the pipeline ([#3510](https://github.com/redis/go-redis/pull/3510))
     7
     8# Changes
     9
    10## ๐Ÿš€ New Features
    11
    12- Added batch process method to the pipeline ([#3510](https://github.com/redis/go-redis/pull/3510))
    13
    14## ๐Ÿ› Bug Fixes
    15
    16- fix: SetErr on Cmd if the command cannot be queued correctly in multi/exec ([#3509](https://github.com/redis/go-redis/pull/3509))
    17
    18## ๐Ÿงฐ Maintenance
    19
    20- Updates release drafter config to exclude dependabot ([#3511](https://github.com/redis/go-redis/pull/3511))
    21- chore(deps): bump actions/setup-go from 5 to 6 ([#3504](https://github.com/redis/go-redis/pull/3504))
    22
    23## Contributors
    24We'd like to thank all the contributors who worked on this release!
    25
    26[@elena-kolevska](https://github.com/elena-kolevksa), [@htemelski-redis](https://github.com/htemelski-redis) and [@ndyakov](https://github.com/ndyakov)
    27
    28
    29# 9.13.0 (2025-09-03)
    30
    31## Highlights
    32- Pipeliner expose queued commands ([#3496](https://github.com/redis/go-redis/pull/3496))
    33- Ensure that JSON.GET returns Nil response ([#3470](https://github.com/redis/go-redis/pull/3470))
    34- Fixes on Read and Write buffer sizes and UniversalOptions
    35
    36## Changes
    37- Pipeliner expose queued commands ([#3496](https://github.com/redis/go-redis/pull/3496))
    38- fix(test): fix a timing issue in pubsub test ([#3498](https://github.com/redis/go-redis/pull/3498))
    39- Allow users to enable read-write splitting in failover mode. ([#3482](https://github.com/redis/go-redis/pull/3482))
    40- Set the read/write buffer size of the sentinel client to 4KiB ([#3476](https://github.com/redis/go-redis/pull/3476))
    41
    42## ๐Ÿš€ New Features
    43
    44- fix(otel): register wait metrics ([#3499](https://github.com/redis/go-redis/pull/3499))
    45- Support subscriptions against cluster slave nodes ([#3480](https://github.com/redis/go-redis/pull/3480))
    46- Add wait metrics to otel ([#3493](https://github.com/redis/go-redis/pull/3493))
    47- Clean failing timeout implementation ([#3472](https://github.com/redis/go-redis/pull/3472))
    48
    49## ๐Ÿ› Bug Fixes
    50
    51- Do not assume that all non-IP hosts are loopbacks ([#3085](https://github.com/redis/go-redis/pull/3085))
    52- Ensure that JSON.GET returns Nil response ([#3470](https://github.com/redis/go-redis/pull/3470))
    53
    54## ๐Ÿงฐ Maintenance
    55
    56- fix(otel): register wait metrics ([#3499](https://github.com/redis/go-redis/pull/3499))
    57- fix(make test): Add default env in makefile ([#3491](https://github.com/redis/go-redis/pull/3491))
    58- Update the introduction to running tests in README.md ([#3495](https://github.com/redis/go-redis/pull/3495))
    59- test: Add comprehensive edge case tests for IncrByFloat command ([#3477](https://github.com/redis/go-redis/pull/3477))
    60- Set the default read/write buffer size of Redis connection to 32KiB ([#3483](https://github.com/redis/go-redis/pull/3483))
    61- Bumps test image to 8.2.1-pre ([#3478](https://github.com/redis/go-redis/pull/3478))
    62- fix UniversalOptions miss ReadBufferSize and WriteBufferSize options ([#3485](https://github.com/redis/go-redis/pull/3485))
    63- chore(deps): bump actions/checkout from 4 to 5 ([#3484](https://github.com/redis/go-redis/pull/3484))
    64- Removes dry run for stale issues policy ([#3471](https://github.com/redis/go-redis/pull/3471))
    65- Update otel metrics URL ([#3474](https://github.com/redis/go-redis/pull/3474))
    66
    67## Contributors
    68We'd like to thank all the contributors who worked on this release!
    69
    70[@LINKIWI](https://github.com/LINKIWI), [@cxljs](https://github.com/cxljs), [@cybersmeashish](https://github.com/cybersmeashish), [@elena-kolevska](https://github.com/elena-kolevska), [@htemelski-redis](https://github.com/htemelski-redis), [@mwhooker](https://github.com/mwhooker), [@ndyakov](https://github.com/ndyakov), [@ofekshenawa](https://github.com/ofekshenawa), [@suever](https://github.com/suever)
    71
    72
    73# 9.12.1 (2025-08-11)
    74## ๐Ÿš€ Highlights
    75In the last version (9.12.0) the client introduced bigger write and read buffer sized. The default value we set was 512KiB.
    76However, users reported that this is too big for most use cases and can lead to high memory usage.
    77In this version the default value is changed to 256KiB. The `README.md` was updated to reflect the
    78correct default value and include a note that the default value can be changed.
    79
    80## ๐Ÿ› Bug Fixes
    81
    82- fix(options): Add buffer sizes to failover. Update README ([#3468](https://github.com/redis/go-redis/pull/3468))
    83
    84## ๐Ÿงฐ Maintenance
    85
    86- fix(options): Add buffer sizes to failover. Update README ([#3468](https://github.com/redis/go-redis/pull/3468))
    87- chore: update & fix otel example ([#3466](https://github.com/redis/go-redis/pull/3466))
    88
    89## Contributors
    90We'd like to thank all the contributors who worked on this release!
    91
    92[@ndyakov](https://github.com/ndyakov) and [@vmihailenco](https://github.com/vmihailenco)
    93
    94# 9.12.0 (2025-08-05)
    95
    96## ๐Ÿš€ Highlights
    97
    98- This release includes support for [Redis 8.2](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisos-8.2-release-notes/).
    99- Introduces an experimental Query Builders for `FTSearch`, `FTAggregate` and other search commands.
   100- Adds support for `EPSILON` option in `FT.VSIM`.
   101- Includes bug fixes and improvements contributed by the community related to ring and [redisotel](https://github.com/redis/go-redis/tree/master/extra/redisotel).
   102
   103## Changes
   104- Improve stale issue workflow ([#3458](https://github.com/redis/go-redis/pull/3458))
   105- chore(ci): Add 8.2 rc2 pre build for CI ([#3459](https://github.com/redis/go-redis/pull/3459))
   106- Added new stream commands ([#3450](https://github.com/redis/go-redis/pull/3450))
   107- feat: Add "skip_verify" to Sentinel ([#3428](https://github.com/redis/go-redis/pull/3428))
   108- fix: `errors.Join` requires Go 1.20 or later ([#3442](https://github.com/redis/go-redis/pull/3442))
   109- DOC-4344 document quickstart examples ([#3426](https://github.com/redis/go-redis/pull/3426))
   110- feat(bitop): add support for the new bitop operations ([#3409](https://github.com/redis/go-redis/pull/3409))
   111
   112## ๐Ÿš€ New Features
   113
   114- feat: recover addIdleConn may occur panic ([#2445](https://github.com/redis/go-redis/pull/2445))
   115- feat(ring): specify custom health check func via HeartbeatFn option ([#2940](https://github.com/redis/go-redis/pull/2940))
   116- Add Query Builder for RediSearch commands ([#3436](https://github.com/redis/go-redis/pull/3436))
   117- add configurable buffer sizes for Redis connections ([#3453](https://github.com/redis/go-redis/pull/3453))
   118- Add VAMANA vector type to RediSearch ([#3449](https://github.com/redis/go-redis/pull/3449))
   119- VSIM add `EPSILON` option ([#3454](https://github.com/redis/go-redis/pull/3454))
   120- Add closing support to otel metrics instrumentation ([#3444](https://github.com/redis/go-redis/pull/3444))
   121
   122## ๐Ÿ› Bug Fixes
   123
   124- fix(redisotel): fix buggy append in reportPoolStats ([#3122](https://github.com/redis/go-redis/pull/3122))
   125- fix(search): return results even if doc is empty ([#3457](https://github.com/redis/go-redis/pull/3457))
   126- [ISSUE-3402]: Ring.Pipelined return dial timeout error ([#3403](https://github.com/redis/go-redis/pull/3403))
   127
   128## ๐Ÿงฐ Maintenance
   129
   130- Merges stale issues jobs into one job with two steps ([#3463](https://github.com/redis/go-redis/pull/3463))
   131- improve code readability ([#3446](https://github.com/redis/go-redis/pull/3446))
   132- chore(release): 9.12.0-beta.1 ([#3460](https://github.com/redis/go-redis/pull/3460))
   133- DOC-5472 time series doc examples ([#3443](https://github.com/redis/go-redis/pull/3443))
   134- Add VAMANA compression algorithm tests ([#3461](https://github.com/redis/go-redis/pull/3461))
   135- bumped redis 8.2 version used in the CI/CD ([#3451](https://github.com/redis/go-redis/pull/3451))
   136
   137## Contributors
   138We'd like to thank all the contributors who worked on this release!
   139
   140[@andy-stark-redis](https://github.com/andy-stark-redis), [@cxljs](https://github.com/cxljs), [@elena-kolevska](https://github.com/elena-kolevska), [@htemelski-redis](https://github.com/htemelski-redis), [@jouir](https://github.com/jouir), [@monkey92t](https://github.com/monkey92t), [@ndyakov](https://github.com/ndyakov), [@ofekshenawa](https://github.com/ofekshenawa), [@rokn](https://github.com/rokn), [@smnvdev](https://github.com/smnvdev), [@strobil](https://github.com/strobil) and [@wzy9607](https://github.com/wzy9607)
   141
   142## New Contributors
   143* [@htemelski-redis](https://github.com/htemelski-redis) made their first contribution in [#3409](https://github.com/redis/go-redis/pull/3409)
   144* [@smnvdev](https://github.com/smnvdev) made their first contribution in [#3403](https://github.com/redis/go-redis/pull/3403)
   145* [@rokn](https://github.com/rokn) made their first contribution in [#3444](https://github.com/redis/go-redis/pull/3444)
   146
   147# 9.11.0 (2025-06-24)
   148
   149## ๐Ÿš€ Highlights
   150
   151Fixes TxPipeline to work correctly in cluster scenarios, allowing execution of commands
   152only in the same slot.
   153
   154# Changes
   155
   156## ๐Ÿš€ New Features
   157
   158- Set cluster slot for `scan` commands, rather than random ([#2623](https://github.com/redis/go-redis/pull/2623))
   159- Add CredentialsProvider field to UniversalOptions ([#2927](https://github.com/redis/go-redis/pull/2927))
   160- feat(redisotel): add WithCallerEnabled option ([#3415](https://github.com/redis/go-redis/pull/3415))
   161
   162## ๐Ÿ› Bug Fixes
   163
   164- fix(txpipeline): keyless commands should take the slot of the keyed ([#3411](https://github.com/redis/go-redis/pull/3411))
   165- fix(loading): cache the loaded flag for slave nodes ([#3410](https://github.com/redis/go-redis/pull/3410))
   166- fix(txpipeline): should return error on multi/exec on multiple slots ([#3408](https://github.com/redis/go-redis/pull/3408))
   167- fix: check if the shard exists to avoid returning nil ([#3396](https://github.com/redis/go-redis/pull/3396))
   168
   169## ๐Ÿงฐ Maintenance
   170
   171- feat: optimize connection pool waitTurn ([#3412](https://github.com/redis/go-redis/pull/3412))
   172- chore(ci): update CI redis builds ([#3407](https://github.com/redis/go-redis/pull/3407))
   173- chore: remove a redundant method from `Ring`, `Client` and `ClusterClient` ([#3401](https://github.com/redis/go-redis/pull/3401))
   174- test: refactor TestBasicCredentials using table-driven tests ([#3406](https://github.com/redis/go-redis/pull/3406))
   175- perf: reduce unnecessary memory allocation operations ([#3399](https://github.com/redis/go-redis/pull/3399))
   176- fix: insert entry during iterating over a map ([#3398](https://github.com/redis/go-redis/pull/3398))
   177- DOC-5229 probabilistic data type examples ([#3413](https://github.com/redis/go-redis/pull/3413))
   178- chore(deps): bump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 ([#3414](https://github.com/redis/go-redis/pull/3414))
   179
   180## Contributors
   181We'd like to thank all the contributors who worked on this release!
   182
   183[@andy-stark-redis](https://github.com/andy-stark-redis), [@boekkooi-impossiblecloud](https://github.com/boekkooi-impossiblecloud), [@cxljs](https://github.com/cxljs), [@dcherubini](https://github.com/dcherubini), [@dependabot[bot]](https://github.com/apps/dependabot), [@iamamirsalehi](https://github.com/iamamirsalehi), [@ndyakov](https://github.com/ndyakov), [@pete-woods](https://github.com/pete-woods), [@twz915](https://github.com/twz915) and [dependabot[bot]](https://github.com/apps/dependabot)
   184
   185# 9.10.0 (2025-06-06)
   186
   187## ๐Ÿš€ Highlights
   188
   189`go-redis` now supports [vector sets](https://redis.io/docs/latest/develop/data-types/vector-sets/). This data type is marked
   190as "in preview" in Redis and its support in `go-redis` is marked as experimental. You can find examples in the documentation and
   191in the `doctests` folder.
   192
   193# Changes
   194
   195## ๐Ÿš€ New Features
   196
   197- feat: support vectorset ([#3375](https://github.com/redis/go-redis/pull/3375))
   198
   199## ๐Ÿงฐ Maintenance
   200
   201- Add the missing NewFloatSliceResult for testing ([#3393](https://github.com/redis/go-redis/pull/3393))
   202- DOC-5078 vector set examples ([#3394](https://github.com/redis/go-redis/pull/3394))
   203
   204## Contributors
   205We'd like to thank all the contributors who worked on this release!
   206
   207[@AndBobsYourUncle](https://github.com/AndBobsYourUncle), [@andy-stark-redis](https://github.com/andy-stark-redis), [@fukua95](https://github.com/fukua95) and [@ndyakov](https://github.com/ndyakov)
   208
   209
   210
   211# 9.9.0 (2025-05-27)
   212
   213## ๐Ÿš€ Highlights
   214- **Token-based Authentication**: Added `StreamingCredentialsProvider` for dynamic credential updates (experimental)
   215  - Can be used with [go-redis-entraid](https://github.com/redis/go-redis-entraid) for Azure AD authentication
   216- **Connection Statistics**: Added connection waiting statistics for better monitoring
   217- **Failover Improvements**: Added `ParseFailoverURL` for easier failover configuration
   218- **Ring Client Enhancements**: Added shard access methods for better Pub/Sub management
   219
   220## โœจ New Features
   221- Added `StreamingCredentialsProvider` for token-based authentication ([#3320](https://github.com/redis/go-redis/pull/3320))
   222  - Supports dynamic credential updates
   223  - Includes connection close hooks
   224  - Note: Currently marked as experimental
   225- Added `ParseFailoverURL` for parsing failover URLs ([#3362](https://github.com/redis/go-redis/pull/3362))
   226- Added connection waiting statistics ([#2804](https://github.com/redis/go-redis/pull/2804))
   227- Added new utility functions:
   228  - `ParseFloat` and `MustParseFloat` in public utils package ([#3371](https://github.com/redis/go-redis/pull/3371))
   229  - Unit tests for `Atoi`, `ParseInt`, `ParseUint`, and `ParseFloat` ([#3377](https://github.com/redis/go-redis/pull/3377))
   230- Added Ring client shard access methods:
   231  - `GetShardClients()` to retrieve all active shard clients
   232  - `GetShardClientForKey(key string)` to get the shard client for a specific key ([#3388](https://github.com/redis/go-redis/pull/3388))
   233
   234## ๐Ÿ› Bug Fixes
   235- Fixed routing reads to loading slave nodes ([#3370](https://github.com/redis/go-redis/pull/3370))
   236- Added support for nil lag in XINFO GROUPS ([#3369](https://github.com/redis/go-redis/pull/3369))
   237- Fixed pool acquisition timeout issues ([#3381](https://github.com/redis/go-redis/pull/3381))
   238- Optimized unnecessary copy operations ([#3376](https://github.com/redis/go-redis/pull/3376))
   239
   240## ๐Ÿ“š Documentation
   241- Updated documentation for XINFO GROUPS with nil lag support ([#3369](https://github.com/redis/go-redis/pull/3369))
   242- Added package-level comments for new features
   243
   244## โšก Performance and Reliability
   245- Optimized `ReplaceSpaces` function ([#3383](https://github.com/redis/go-redis/pull/3383))
   246- Set default value for `Options.Protocol` in `init()` ([#3387](https://github.com/redis/go-redis/pull/3387))
   247- Exported pool errors for public consumption ([#3380](https://github.com/redis/go-redis/pull/3380))
   248
   249## ๐Ÿ”ง Dependencies and Infrastructure
   250- Updated Redis CI to version 8.0.1 ([#3372](https://github.com/redis/go-redis/pull/3372))
   251- Updated spellcheck GitHub Actions ([#3389](https://github.com/redis/go-redis/pull/3389))
   252- Removed unused parameters ([#3382](https://github.com/redis/go-redis/pull/3382), [#3384](https://github.com/redis/go-redis/pull/3384))
   253
   254## ๐Ÿงช Testing
   255- Added unit tests for pool acquisition timeout ([#3381](https://github.com/redis/go-redis/pull/3381))
   256- Added unit tests for utility functions ([#3377](https://github.com/redis/go-redis/pull/3377))
   257
   258## ๐Ÿ‘ฅ Contributors
   259
   260We would like to thank all the contributors who made this release possible:
   261
   262[@ndyakov](https://github.com/ndyakov), [@ofekshenawa](https://github.com/ofekshenawa), [@LINKIWI](https://github.com/LINKIWI), [@iamamirsalehi](https://github.com/iamamirsalehi), [@fukua95](https://github.com/fukua95), [@lzakharov](https://github.com/lzakharov), [@DengY11](https://github.com/DengY11)
   263
   264## ๐Ÿ“ Changelog
   265
   266For a complete list of changes, see the [full changelog](https://github.com/redis/go-redis/compare/v9.8.0...v9.9.0).
   267
   268# 9.8.0 (2025-04-30)
   269
   270## ๐Ÿš€ Highlights
   271- **Redis 8 Support**: Full compatibility with Redis 8.0, including testing and CI integration
   272- **Enhanced Hash Operations**: Added support for new hash commands (`HGETDEL`, `HGETEX`, `HSETEX`) and `HSTRLEN` command
   273- **Search Improvements**: Enabled Search DIALECT 2 by default and added `CountOnly` argument for `FT.Search`
   274
   275## โœจ New Features
   276- Added support for new hash commands: `HGETDEL`, `HGETEX`, `HSETEX` ([#3305](https://github.com/redis/go-redis/pull/3305))
   277- Added `HSTRLEN` command for hash operations ([#2843](https://github.com/redis/go-redis/pull/2843))
   278- Added `Do` method for raw query by single connection from `pool.Conn()` ([#3182](https://github.com/redis/go-redis/pull/3182))
   279- Prevent false-positive marshaling by treating zero time.Time as empty in isEmptyValue ([#3273](https://github.com/redis/go-redis/pull/3273))
   280- Added FailoverClusterClient support for Universal client ([#2794](https://github.com/redis/go-redis/pull/2794))
   281- Added support for cluster mode with `IsClusterMode` config parameter ([#3255](https://github.com/redis/go-redis/pull/3255))
   282- Added client name support in `HELLO` RESP handshake ([#3294](https://github.com/redis/go-redis/pull/3294))
   283- **Enabled Search DIALECT 2 by default** ([#3213](https://github.com/redis/go-redis/pull/3213))
   284- Added read-only option for failover configurations ([#3281](https://github.com/redis/go-redis/pull/3281))
   285- Added `CountOnly` argument for `FT.Search` to use `LIMIT 0 0` ([#3338](https://github.com/redis/go-redis/pull/3338))
   286- Added `DB` option support in `NewFailoverClusterClient` ([#3342](https://github.com/redis/go-redis/pull/3342))
   287- Added `nil` check for the options when creating a client ([#3363](https://github.com/redis/go-redis/pull/3363))
   288
   289## ๐Ÿ› Bug Fixes
   290- Fixed `PubSub` concurrency safety issues ([#3360](https://github.com/redis/go-redis/pull/3360))
   291- Fixed panic caused when argument is `nil` ([#3353](https://github.com/redis/go-redis/pull/3353))
   292- Improved error handling when fetching master node from sentinels ([#3349](https://github.com/redis/go-redis/pull/3349))
   293- Fixed connection pool timeout issues and increased retries ([#3298](https://github.com/redis/go-redis/pull/3298))
   294- Fixed context cancellation error leading to connection spikes on Primary instances ([#3190](https://github.com/redis/go-redis/pull/3190))
   295- Fixed RedisCluster client to consider `MASTERDOWN` a retriable error ([#3164](https://github.com/redis/go-redis/pull/3164))
   296- Fixed tracing to show complete commands instead of truncated versions ([#3290](https://github.com/redis/go-redis/pull/3290))
   297- Fixed OpenTelemetry instrumentation to prevent multiple span reporting ([#3168](https://github.com/redis/go-redis/pull/3168))
   298- Fixed `FT.Search` Limit argument and added `CountOnly` argument for limit 0 0 ([#3338](https://github.com/redis/go-redis/pull/3338))
   299- Fixed missing command in interface ([#3344](https://github.com/redis/go-redis/pull/3344))
   300- Fixed slot calculation for `COUNTKEYSINSLOT` command ([#3327](https://github.com/redis/go-redis/pull/3327))
   301- Updated PubSub implementation with correct context ([#3329](https://github.com/redis/go-redis/pull/3329))
   302
   303## ๐Ÿ“š Documentation
   304- Added hash search examples ([#3357](https://github.com/redis/go-redis/pull/3357))
   305- Fixed documentation comments ([#3351](https://github.com/redis/go-redis/pull/3351))
   306- Added `CountOnly` search example ([#3345](https://github.com/redis/go-redis/pull/3345))
   307- Added examples for list commands: `LLEN`, `LPOP`, `LPUSH`, `LRANGE`, `RPOP`, `RPUSH` ([#3234](https://github.com/redis/go-redis/pull/3234))
   308- Added `SADD` and `SMEMBERS` command examples ([#3242](https://github.com/redis/go-redis/pull/3242))
   309- Updated `README.md` to use Redis Discord guild ([#3331](https://github.com/redis/go-redis/pull/3331))
   310- Updated `HExpire` command documentation ([#3355](https://github.com/redis/go-redis/pull/3355))
   311- Featured OpenTelemetry instrumentation more prominently ([#3316](https://github.com/redis/go-redis/pull/3316))
   312- Updated `README.md` with additional information ([#310ce55](https://github.com/redis/go-redis/commit/310ce55))
   313
   314## โšก Performance and Reliability
   315- Bound connection pool background dials to configured dial timeout ([#3089](https://github.com/redis/go-redis/pull/3089))
   316- Ensured context isn't exhausted via concurrent query ([#3334](https://github.com/redis/go-redis/pull/3334))
   317
   318## ๐Ÿ”ง Dependencies and Infrastructure
   319- Updated testing image to Redis 8.0-RC2 ([#3361](https://github.com/redis/go-redis/pull/3361))
   320- Enabled CI for Redis CE 8.0 ([#3274](https://github.com/redis/go-redis/pull/3274))
   321- Updated various dependencies:
   322  - Bumped golangci/golangci-lint-action from 6.5.0 to 7.0.0 ([#3354](https://github.com/redis/go-redis/pull/3354))
   323  - Bumped rojopolis/spellcheck-github-actions ([#3336](https://github.com/redis/go-redis/pull/3336))
   324  - Bumped golang.org/x/net in example/otel ([#3308](https://github.com/redis/go-redis/pull/3308))
   325- Migrated golangci-lint configuration to v2 format ([#3354](https://github.com/redis/go-redis/pull/3354))
   326
   327## โš ๏ธ Breaking Changes
   328- **Enabled Search DIALECT 2 by default** ([#3213](https://github.com/redis/go-redis/pull/3213))
   329- Dropped RedisGears (Triggers and Functions) support ([#3321](https://github.com/redis/go-redis/pull/3321))
   330- Dropped FT.PROFILE command that was never enabled ([#3323](https://github.com/redis/go-redis/pull/3323))
   331
   332## ๐Ÿ”’ Security
   333- Fixed network error handling on SETINFO (CVE-2025-29923) ([#3295](https://github.com/redis/go-redis/pull/3295))
   334
   335## ๐Ÿงช Testing
   336- Added integration tests for Redis 8 behavior changes in Redis Search ([#3337](https://github.com/redis/go-redis/pull/3337))
   337- Added vector types INT8 and UINT8 tests ([#3299](https://github.com/redis/go-redis/pull/3299))
   338- Added test codes for search_commands.go ([#3285](https://github.com/redis/go-redis/pull/3285))
   339- Fixed example test sorting ([#3292](https://github.com/redis/go-redis/pull/3292))
   340
   341## ๐Ÿ‘ฅ Contributors
   342
   343We would like to thank all the contributors who made this release possible:
   344
   345[@alexander-menshchikov](https://github.com/alexander-menshchikov), [@EXPEbdodla](https://github.com/EXPEbdodla), [@afti](https://github.com/afti), [@dmaier-redislabs](https://github.com/dmaier-redislabs), [@four_leaf_clover](https://github.com/four_leaf_clover), [@alohaglenn](https://github.com/alohaglenn), [@gh73962](https://github.com/gh73962), [@justinmir](https://github.com/justinmir), [@LINKIWI](https://github.com/LINKIWI), [@liushuangbill](https://github.com/liushuangbill), [@golang88](https://github.com/golang88), [@gnpaone](https://github.com/gnpaone), [@ndyakov](https://github.com/ndyakov), [@nikolaydubina](https://github.com/nikolaydubina), [@oleglacto](https://github.com/oleglacto), [@andy-stark-redis](https://github.com/andy-stark-redis), [@rodneyosodo](https://github.com/rodneyosodo), [@dependabot](https://github.com/dependabot), [@rfyiamcool](https://github.com/rfyiamcool), [@frankxjkuang](https://github.com/frankxjkuang), [@fukua95](https://github.com/fukua95), [@soleymani-milad](https://github.com/soleymani-milad), [@ofekshenawa](https://github.com/ofekshenawa), [@khasanovbi](https://github.com/khasanovbi)
   346
   347
   348# Old Changelog
   349## Unreleased
   350
   351### Changed
   352
   353* `go-redis` won't skip span creation if the parent spans is not recording. ([#2980](https://github.com/redis/go-redis/issues/2980))
   354  Users can use the OpenTelemetry sampler to control the sampling behavior.
   355  For instance, you can use the `ParentBased(NeverSample())` sampler from `go.opentelemetry.io/otel/sdk/trace` to keep
   356  a similar behavior (drop orphan spans) of `go-redis` as before.
   357
   358## [9.0.5](https://github.com/redis/go-redis/compare/v9.0.4...v9.0.5) (2023-05-29)
   359
   360
   361### Features
   362
   363* Add ACL LOG ([#2536](https://github.com/redis/go-redis/issues/2536)) ([31ba855](https://github.com/redis/go-redis/commit/31ba855ddebc38fbcc69a75d9d4fb769417cf602))
   364* add field protocol to setupClusterQueryParams ([#2600](https://github.com/redis/go-redis/issues/2600)) ([840c25c](https://github.com/redis/go-redis/commit/840c25cb6f320501886a82a5e75f47b491e46fbe))
   365* add protocol option ([#2598](https://github.com/redis/go-redis/issues/2598)) ([3917988](https://github.com/redis/go-redis/commit/391798880cfb915c4660f6c3ba63e0c1a459e2af))
   366
   367
   368
   369## [9.0.4](https://github.com/redis/go-redis/compare/v9.0.3...v9.0.4) (2023-05-01)
   370
   371
   372### Bug Fixes
   373
   374* reader float parser ([#2513](https://github.com/redis/go-redis/issues/2513)) ([46f2450](https://github.com/redis/go-redis/commit/46f245075e6e3a8bd8471f9ca67ea95fd675e241))
   375
   376
   377### Features
   378
   379* add client info command ([#2483](https://github.com/redis/go-redis/issues/2483)) ([b8c7317](https://github.com/redis/go-redis/commit/b8c7317cc6af444603731f7017c602347c0ba61e))
   380* no longer verify HELLO error messages ([#2515](https://github.com/redis/go-redis/issues/2515)) ([7b4f217](https://github.com/redis/go-redis/commit/7b4f2179cb5dba3d3c6b0c6f10db52b837c912c8))
   381* read the structure to increase the judgment of the omitempty opโ€ฆ ([#2529](https://github.com/redis/go-redis/issues/2529)) ([37c057b](https://github.com/redis/go-redis/commit/37c057b8e597c5e8a0e372337f6a8ad27f6030af))
   382
   383
   384
   385## [9.0.3](https://github.com/redis/go-redis/compare/v9.0.2...v9.0.3) (2023-04-02)
   386
   387### New Features
   388
   389- feat(scan): scan time.Time sets the default decoding (#2413)
   390- Add support for CLUSTER LINKS command (#2504)
   391- Add support for acl dryrun command (#2502)
   392- Add support for COMMAND GETKEYS & COMMAND GETKEYSANDFLAGS (#2500)
   393- Add support for LCS Command (#2480)
   394- Add support for BZMPOP (#2456)
   395- Adding support for ZMPOP command (#2408)
   396- Add support for LMPOP (#2440)
   397- feat: remove pool unused fields (#2438)
   398- Expiretime and PExpireTime (#2426)
   399- Implement `FUNCTION` group of commands (#2475)
   400- feat(zadd): add ZAddLT and ZAddGT (#2429)
   401- Add: Support for COMMAND LIST command (#2491)
   402- Add support for BLMPOP (#2442)
   403- feat: check pipeline.Do to prevent confusion with Exec (#2517)
   404- Function stats, function kill, fcall and fcall_ro (#2486)
   405- feat: Add support for CLUSTER SHARDS command (#2507)
   406- feat(cmd): support for adding byte,bit parameters to the bitpos command (#2498)
   407
   408### Fixed
   409
   410- fix: eval api cmd.SetFirstKeyPos (#2501)
   411- fix: limit the number of connections created (#2441)
   412- fixed #2462  v9 continue support dragonfly,  it's Hello command return "NOAUTH Authentication required" error (#2479)
   413- Fix for internal/hscan/structmap.go:89:23: undefined: reflect.Pointer (#2458)
   414- fix: group lag can be null (#2448)
   415
   416### Maintenance
   417
   418- Updating to the latest version of redis (#2508)
   419- Allowing for running tests on a port other than the fixed 6380 (#2466)
   420- redis 7.0.8 in tests (#2450)
   421- docs: Update redisotel example for v9 (#2425)
   422- chore: update go mod, Upgrade golang.org/x/net version to 0.7.0 (#2476)
   423- chore: add Chinese translation (#2436)
   424- chore(deps): bump github.com/bsm/gomega from 1.20.0 to 1.26.0 (#2421)
   425- chore(deps): bump github.com/bsm/ginkgo/v2 from 2.5.0 to 2.7.0 (#2420)
   426- chore(deps): bump actions/setup-go from 3 to 4 (#2495)
   427- docs: add instructions for the HSet api (#2503)
   428- docs: add reading lag field comment (#2451)
   429- test: update go mod before testing(go mod tidy) (#2423)
   430- docs: fix comment typo (#2505)
   431- test: remove testify (#2463)
   432- refactor: change ListElementCmd to KeyValuesCmd. (#2443)
   433- fix(appendArg): appendArg case special type (#2489)
   434
   435## [9.0.2](https://github.com/redis/go-redis/compare/v9.0.1...v9.0.2) (2023-02-01)
   436
   437### Features
   438
   439* upgrade OpenTelemetry, use the new metrics API. ([#2410](https://github.com/redis/go-redis/issues/2410)) ([e29e42c](https://github.com/redis/go-redis/commit/e29e42cde2755ab910d04185025dc43ce6f59c65))
   440
   441## v9 2023-01-30
   442
   443### Breaking
   444
   445- Changed Pipelines to not be thread-safe any more.
   446
   447### Added
   448
   449- Added support for [RESP3](https://github.com/antirez/RESP3/blob/master/spec.md) protocol. It was
   450  contributed by @monkey92t who has done the majority of work in this release.
   451- Added `ContextTimeoutEnabled` option that controls whether the client respects context timeouts
   452  and deadlines. See
   453  [Redis Timeouts](https://redis.uptrace.dev/guide/go-redis-debugging.html#timeouts) for details.
   454- Added `ParseClusterURL` to parse URLs into `ClusterOptions`, for example,
   455  `redis://user:password@localhost:6789?dial_timeout=3&read_timeout=6s&addr=localhost:6790&addr=localhost:6791`.
   456- Added metrics instrumentation using `redisotel.IstrumentMetrics`. See
   457  [documentation](https://redis.uptrace.dev/guide/go-redis-monitoring.html)
   458- Added `redis.HasErrorPrefix` to help working with errors.
   459
   460### Changed
   461
   462- Removed asynchronous cancellation based on the context timeout. It was racy in v8 and is
   463  completely gone in v9.
   464- Reworked hook interface and added `DialHook`.
   465- Replaced `redisotel.NewTracingHook` with `redisotel.InstrumentTracing`. See
   466  [example](example/otel) and
   467  [documentation](https://redis.uptrace.dev/guide/go-redis-monitoring.html).
   468- Replaced `*redis.Z` with `redis.Z` since it is small enough to be passed as value without making
   469  an allocation.
   470- Renamed the option `MaxConnAge` to `ConnMaxLifetime`.
   471- Renamed the option `IdleTimeout` to `ConnMaxIdleTime`.
   472- Removed connection reaper in favor of `MaxIdleConns`.
   473- Removed `WithContext` since `context.Context` can be passed directly as an arg.
   474- Removed `Pipeline.Close` since there is no real need to explicitly manage pipeline resources and
   475  it can be safely reused via `sync.Pool` etc. `Pipeline.Discard` is still available if you want to
   476  reset commands for some reason.
   477
   478### Fixed
   479
   480- Improved and fixed pipeline retries.
   481- As usually, added support for more commands and fixed some bugs.

View as plain text