Skip to content

Releases: redis/go-redis

9.6.0b2

20 Jun 08:50
Compare
Choose a tag to compare
9.6.0b2 Pre-release
Pre-release

Changes

🚀 New Features

  • Add support for XREAD last entry (#3005)

9.6.0b1

19 Jun 23:45
Compare
Choose a tag to compare
9.6.0b1 Pre-release
Pre-release

Changes

🚀 New Features

  • Support Hash-field expiration commands (#2991)
  • Support NOVALUES parameter for HSCAN (#2925)
  • Added test case for CLIENT KILL with MAXAGE option (#2971)

🛠️ 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.

9.5.2

31 May 02:51
2d8fa02
Compare
Choose a tag to compare

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

9.5.1

20 Feb 15:46
d43a9fa
Compare
Choose a tag to compare

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

9.5.0

18 Feb 17:33
b5a9e5d
Compare
Choose a tag to compare

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

9.4.0

07 Jan 10:33
531f068
Compare
Choose a tag to compare

Changes

Breaking Changes

  • Revert #2818 due to it be a breaking change (#2861)

🚀 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

9.3.1

19 Dec 11:00
73c879d
Compare
Choose a tag to compare

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

9.3.0

31 Oct 15:04
21bd40a
Compare
Choose a tag to compare

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

  • Allow using pointers of simple data types as command values (#2745) (#2753)
  • Add InfoMap command (#2665)

🐛 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

9.2.1

27 Sep 08:38
f994ff1
Compare
Choose a tag to compare

🧰 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

9.2.0

20 Sep 15:02
dac3314
Compare
Choose a tag to compare

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