github redis/go-redis v9.3.0
9.3.0

latest releases: v9.7.0, extra/redisprometheus/v9.7.0, extra/redisotel/v9.7.0...
12 months ago

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

Don't miss a new go-redis release

NewReleases is sending notifications on new releases.