Skip to content

Releases: redis/go-redis

9.15.0-beta.2

26 Sep 16:41
8b38e27

Choose a tag to compare

9.15.0-beta.2 Pre-release
Pre-release

Highlights

This beta release includes a pre-production version of processing push notifications and hitless upgrades.

Changes

  • chore: Update hash_commands.go (#3523)

🚀 New Features

  • feat: RESP3 notifications support & Hitless notifications handling (#3418)

🐛 Bug Fixes

  • fix: pipeline repeatedly sets the error (#3525)

🧰 Maintenance

  • chore(deps): bump rojopolis/spellcheck-github-actions from 0.51.0 to 0.52.0 (#3520)
  • feat(e2e-testing): maintnotifications e2e and refactor (#3526)
  • feat(tag.sh): Improved resiliency of the release process (#3530)

Contributors

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

@cxljs, @ndyakov, @htemelski-redis, and @omid-h70

9.15.0-beta.1

10 Sep 20:05
0dcfeef

Choose a tag to compare

9.15.0-beta.1 Pre-release
Pre-release

Highlights

This beta release includes a pre-production version of processing push notifications and hitless upgrades.

Hitless Upgrades

Hitless upgrades is a major new feature that allows for zero-downtime upgrades in Redis clusters.
You can find more information in the Hitless Upgrades documentation.

Changes

🚀 New Features

  • [CAE-1088] & [CAE-1072] feat: RESP3 notifications support & Hitless notifications handling (#3418)

Contributors

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

@ndyakov, @htemelski-redis, @ofekshenawa

9.14.0

10 Sep 12:02
2da6ca0

Choose a tag to compare

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

9.13.0

03 Sep 11:56
52bda7a

Choose a tag to compare

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

9.12.1

11 Aug 16:00
7b4a537

Choose a tag to compare

🚀 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

9.12.0

05 Aug 13:52
b7838dc

Choose a tag to compare

🚀 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

9.12.0-beta.1

04 Aug 12:04
f006e94

Choose a tag to compare

9.12.0-beta.1 Pre-release
Pre-release

🚀 Highlights

  • This is a beta release for Redis 8.2 support.
  • 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 related to search and community contributions for redisotel.

Changes

  • chore(github): 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

  • 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(search): return results even if doc is empty (#3457)
  • [ISSUE-3402]: Ring.Pipelined return dial timeout error (#3403)

🧰 Maintenance

  • 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, @htemelski-redis, @jouir, @ndyakov, @ofekshenawa, @rokn and @smnvdev

New Contributors

9.11.0

24 Jun 11:10
0decfdc

Choose a tag to compare

🚀 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

9.10.0

06 Jun 15:35
75e8370

Choose a tag to compare

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

9.9.0

27 May 16:10
c935f96

Choose a tag to compare

🚀 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.