Skip to content

fix(deps): update module github.com/go-redis/redis/v8 to v9

This MR contains the following updates:

Package Change Age Confidence
github.com/go-redis/redis/v8 v8.11.5 -> v9.14.0 age confidence

Release Notes

go-redis/redis (github.com/go-redis/redis/v8)

v9.14.0: 9.14.0

Compare Source

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

v9.13.0: 9.13.0

Compare Source

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

v9.12.1: 9.12.1

Compare Source

🚀 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

v9.12.0: 9.12.0

Compare Source

🚀 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

v9.11.0: 9.11.0

Compare Source

🚀 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

v9.10.0: 9.10.0

Compare Source

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

v9.9.0: 9.9.0

Compare Source

🚀 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

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

v9.8.0

Compare Source

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

v9.7.3

Compare Source

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

v9.7.2

Compare Source

v9.7.1

Compare Source

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

v9.7.0: 9.7.0

Compare Source

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

Contributors

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

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

v9.6.3

Compare Source

What's Changed

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

v9.6.2: 9.6.2

Compare Source

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

v9.6.1: 9.6.1

Compare Source

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
🎁 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

v9.6.0: 9.6.0

Compare Source

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

v9.5.5

Compare Source

What's Changed

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

v9.5.4

Compare Source

v9.5.3

Compare Source

v9.5.2: 9.5.2

Compare Source

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

v9.5.1: 9.5.1

Compare Source

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

v9.5.0: 9.5.0

Compare Source

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

v9.4.0: 9.4.0

Compare Source

Changes

Breaking Changes

🚀 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

v9.3.1: 9.3.1

Compare Source

Updates and Enhancements

  • Documentation and examples have been updated (#​2806).
  • Redis values can now be scanned into pointer fields (#​2787).
  • The URL format error in the Documentation has been corrected (#​2789).
  • Cmder annotation has been added (#​2816).
  • The Z member type has been changed to string (#​2818).

🚀 New Features

  • BITFIELD_RO Command has been introduced (#​2820).
  • Monitor Command is now supported (#​2830).

🐛 Bug Fixes

  • "COMMAND" command is now executed only when readonly (#​2815).

🧰 Maintenance and Dependency Updates

  • The usage of TSMadd ktvSlices has been clarified in the docstring (#​2827).
  • Dependencies have been updated:
    • rojopolis/spellcheck-github-actions from 0.34.0 to 0.35.0 (#​2807)
    • actions/stale from 8 to 9 (#​2828)
    • actions/setup-go from 4 to 5 (#​2829)

Contributors

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

@​RyoMiyashita, @​dependabot, @​dependabot[bot], @​lzakharov, @​ofekshenawa, @​rfyiamcool, @​rouzier, @​splundid and @​x1nchen

v9.3.0: 9.3.0

Compare Source

What's new?

JSON support

We are continuing to add support for more Redis data types in Go-Redis. Today, we are happy to announce support for JSON. JSON is a Redis data structure for storing, querying, and manipulating a single JSON document.

With a JSON key in Redis, you can:

  • Use it as a versatile hierarchical data type
  • Opt for it as a sophisticated alternative to the traditional hash data structure
  • Treat it as a singular document in a document-based database

The following example demonstrate how to get started with JSON in Go-Redis:

var ctx = context.Background()
client := redis.NewClient(&redis.Options{
	Addr: "localhost:6379",
})

type Bicycle struct {
	Brand       string
	Model       string
	Price       int
}

bicycle := Bicycle{
	Brand: "Velorim",
	Model: "Jigger",
	Price: 270,
}

_, err := client.JSONSet(ctx, "bicycle:1", "$", bicycle).Result()
if err != nil {
	panic(err)
}

res, err := client.JSONGet(ctx, "bicycle:1", ".Model").Result()
if err != nil {
	panic(err)
}
fmt.Println("bicycle:1 model is", res)

Learn more about JSON support in Redis

Other notable improvements

🐛 Bug Fixes

  • Handle wrapped errors in scripter.Run (#​2674)
  • BUG: BFReserveArgs - error_rate & capacity (#​2763)
  • fix: free turn of connection pool when leave with error (#​2658)
  • Add BitMapCmdable to Cmdable. (#​2737)

🧰 Maintenance

  • Option types must propagage missing fields (#​2726)
  • fix missing fields in different Options (#​2757)
  • update PubSub.Channel documentation (#​2761)
  • Linking to Redis learning resources (#​2759)
  • Creating CODEOWNERS for documentation (#​2749)
  • chore(deps): bump rojopolis/spellcheck-github-actions from 0.33.1 to 0.34.0 (#​2740)
  • chore(deps): bump google.golang.org/grpc from 1.55.0 to 1.56.3 in /example/otel (#​2775)
  • chore(deps): bump golang.org/x/net from 0.10.0 to 0.17.0 in /example/otel (#​2776)
  • Fix OpenTelemetry link in README (#​2755)

Contributors

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

@​Sovietaced, @​chayim, @​chenjie199234, @​cyningsun, @​dependabot, @​dependabot[bot], @​fred84, @​nic-gibson, @​ofekshenawa, @​peczenyj, @​sethrylan, @​snaffi, @​tzq0301 and @​vmihailenco

v9.2.1: 9.2.1

Compare Source

🧰 Maintenance

  • chore(deps): bump actions/stale from 3 to 8 (#​2732)
  • Add stream interface back to Cmdable (#​2725)
  • Remove redundant nil check in gears (#​2728)

Contributors

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

@​Juneezee, @​dependabot, @​dependabot[bot], @​gabrielgio and @​ofekshenawa

v9.2.0: 9.2.0

Compare Source

What's new?

Time series support

We are happy to announce support for Time Series. This enhancement allows developers to leverage the time series data structure directly within Go-Redis, enabling efficient ingestion, querying, and storage of time-sequential data. Whether you're tracking metrics, logs, or other time-sensitive information, this feature offers a robust solution to manage time series data seamlessly. We encourage developers to explore this new capability and provide feedback for further improvements. Learn more about Redis Time Series

Better support for Redis 7.2

Go-Redis now supports WAITAOF and CLIENT SETINFO commands introduced in Redis 7.2.

Other notable improvements
  • Add the ability to set a connection growth limit with MaxActiveConns configuration setting (#​2646)
  • Add support for multiple values in the bitfield cmd (#​2648)

Breaking Changes

  • Changing the suffix for probablistic commands acceptings arguments to WithArgs from Args (#​2701)

🧰 Maintenance

  • Making command structs digestible (#​2716)
  • change interfaces probabilistic and redis gears from private to public (#​2695)
  • Adding CONTRIBUTING guidelines (#​2718)
  • Adding Go 1.21.x for CI coverage (#​2697)
  • chore(deps): bump actions/checkout from 3 to 4 (#​2702)
  • chore(deps): bump github.com/bsm/ginkgo/v2 from 2.9.5 to 2.12.0 (#​2690)
  • chore(deps): bump github.com/bsm/gomega from 1.26.0 to 1.27.10 (#​2689)
  • Adding stale issues workflow (#​2700)
  • Updating redis binary for makefile to 7.2.1 (#​2693)
  • Skip flaky tests (#​2699)
  • Format code and fix go vet (#​2696)
  • Use time duration calculation (#​2651)

Contributors

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

@​NikanV, @​SoulPancake, @​chayim, @​dependabot, @​dependabot[bot], @​nvorobev, @​ofekshenawa, @​peczenyj, @​taytzehao and @​wzlove

v9.1.0: 9.1.0

Compare Source

What's new?

Triggers and Functions support

Triggers and Functions allow you to execute server-side functions triggered when key values are modified or created in Redis, a stream entry arrival, or explicitly calling them. Simply put, you can replace Lua scripts with easy-to-develop JavaScript or TypeScript code. Move your business logic closer to the data to ensure a lower latency, and forget about updating dependent key values manually in your code. Try it for yourself with Quick start

Support for All Probabilistic data structures

Probabilistic data structures, like Bloom filters, offer unique advantages when dealing with large datasets, such as memory efficiency, faster operations, and scalability. Go-Redis now supports all probabilistic data structures.

🐛 Bug Fixes

🧰 Maintenance

  • Bump github.com/bsm/ginkgo/v2 from 2.7.0 to 2.9.5 (#​2613)
  • Adds testable examples to be automatically pulled in redis.io docs (#​2601)
  • Integrating spellcheck into CI (#​2666)
  • Bumping redis versions (#​2662)
  • Updating the README with connection options (#​2661)
  • chore: fix staticcheck (#​2631)

Contributors

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

@​chayim, @​dependabot, @​dependabot[bot], @​elena-kolevska, @​kamyab98, @​ofekshenawa, @​testwill and @​vmihailenco

v9.0.5: 9.0.5

Compare Source

Changes

  • chore: release v9.0.5 (release.sh) (#​2614)
  • chore: update otel example to the latest versions (#​2606)
  • fix the reading of the "entries-read" field in XInfoStreamFull (#​2595)
  • chore(deps): Update otel/metric to stable API (#​2607)
  • feat: add field protocol to setupClusterQueryParams (#​2600)
  • feat: add protocol option (#​2598)

🚀 New Features

Contributors

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

@​SoulPancake, @​ash2k, @​ljun20160606, @​monkey92t and @​vmihailenco

v9.0.4: 9.0.4

Compare Source

Changes

  • chore: release v9.0.4 (release.sh) (#​2572)
  • chore(deps): Updating otel/metric and fixing breaking changes (#​2569)
  • docs: update doc of redis option (#​2567)
  • chore: fix typo in the result.go (#​2558)
  • feat: add client info command (#​2483)
  • Add ZRANK, ZREVRANK WITHSCORE (#​2531)
  • Maintenance : Deprecate FCallRo & add FCallRO (#​2550)
  • Add support for CLUSTER MYSHARDID command (#​2530)
  • feat: no longer verify HELLO error messages (#​2515)
  • test: redis-version to 7.2-rc1 (#​2532)
  • doc: pass ctx in BLpop example for infinite wait time (#​2540)
  • actions: build on go1.20.x (#​2541)
  • fix: reader float parser (#​2513)

🚀 New Features

  • Add support for MODULE LOADEX command (#​2490)
  • feat: read the structure to increase the judgment of the omitempty op… (#​2529)

Contributors

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

@​SoulPancake, @​ViBiOh, @​iliyanm, @​ktsivkov, @​monkey92t, @​mstmdev, @​pranitbauva1997, @​rfyiamcool and @​vmihailenco

v9.0.3: 9.0.3

Compare Source

Changes

🚀 New Features

  • feat(scan): scan time.Time sets the default decoding (#​2413)
  • Add support for BZMPOP (#​2456)
  • Adding support for ZMPOP command (#​2408)
  • Add support for BLMPOP (#​2442)
  • Add support for LMPOP (#​2440)
  • feat: remove pool unused fields (#​2438)
  • feat: check pipeline.Do to prevent confusion with Exec (#​2517)
  • Function stats, function kill, fcall and fcall_ro (#​2486)
  • feat: Add support for CLUSTER SHARDS command (#​2507)
  • Add support for CLUSTER LINKS command (#​2504)
  • Add support for acl dryrun command (#​2502)
  • Add support for COMMAND GETKEYS & COMMAND GETKEYSANDFLAGS (#​2500)
  • Add support for LCS Command (#​2480)
  • feat(cmd): support for adding byte,bit parameters to the bitpos command (#​2498)
  • Add: Support for COMMAND LIST command (#​2491)
  • Implement FUNCTION group of commands (#​2475)
  • feat(zadd): add ZAddLT and ZAddGT (#​2429)
  • Expiretime and PExpireTime (#​2426)

🐛 Bug Fixes

  • fix: eval api cmd.SetFirstKeyPos (#​2501)
  • fix: limit the number of connections created (#​2441)
  • fix: group lag can be null (#​2448)
  • fix(appendArg): appendArg case special type (#​2489)
  • Fix for internal/hscan/structmap.go:89:23: undefined: reflect.Pointer (#​2458)
  • fixed #​2462 v9 continue support dragonfly, it's Hello command return "NOAUTH Authentication required" error (#​2479)

🧰 Maintenance

  • Updating to the latest version of redis (#​2508)
  • Allowing for running tests on a port other than the fixed 6380 (#​2466)
  • redis 7.0.8 in tests (#​2450)
  • docs: Update redisotel example for v9 (#​2425)
  • chore(deps): bump github.com/bsm/gomega from 1.20.0 to 1.26.0 (#​2421)
  • chore(deps): bump github.com/bsm/ginkgo/v2 from 2.5.0 to 2.7.0 (#​2420)
  • chore(deps): bump actions/setup-go from 3 to 4 (#​2495)
  • chore: update go mod, Upgrade golang.org/x/net version to 0.7.0 (#​2476)
  • test: remove testify (#​2463)
  • docs: add reading lag field comment (#​2451)
  • test: update go mod before testing(go mod tidy) (#​2423)
  • chore: bump Go to 1.18 (#​2428)
  • refactor: change ListElementCmd to KeyValuesCmd. (#​2443)
  • chore: add Chinese translation (#​2436)
  • docs: add instructions for the HSet api (#​2503)
  • docs: fix comment typo (#​2505)

Contributors

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

@​KasonBraley, @​LCaparelli, @​Multiply, @​SoulPancake, @​aksh-02, @​chayim, @​dependabot, @​dependabot[bot], @​eepurichandra, @​elena-kolevska, @​holykol, @​monkey92t, @​septemhill, @​vmihailenco, @​xinzhanguo and @​yikuaibro

v9.0.2

Compare Source

Changes

  • feat: upgrade OpenTelemetry, use the new metrics API. (#​2410)

🧰 Maintenance

  • chore: release v9.0.2 (release.sh) (#​2412)
  • test: remove deep search (#​2411)
  • Adding the release drafter, for release note generation (#​2368)

Contributors

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

@​chayim, @​longit644, @​monkey92t and @​vmihailenco

v9.0.1

Compare Source

Please refer to CHANGELOG.md for details

v9.0.0

Compare Source

Please refer to CHANGELOG.md for details


Configuration

📅 Schedule: Branch creation - "before 6am on Monday" in timezone Europe/Paris, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by Renovate-Bot

Merge request reports

Loading