mirror of
https://github.com/redis/go-redis.git
synced 2025-12-05 06:22:07 +03:00
chore(release): 9.18.0-beta.1 (#3628)
* bump version to 9.18.0-beta.1 * add release notes
This commit is contained in:
@@ -1,5 +1,57 @@
|
|||||||
# Release Notes
|
# Release Notes
|
||||||
|
|
||||||
|
# 9.18.0-beta.1 (2025-12-01)
|
||||||
|
|
||||||
|
## 🚀 Highlights
|
||||||
|
|
||||||
|
### Request and Response Policy Based Routing in Cluster Mode
|
||||||
|
|
||||||
|
This beta release introduces comprehensive support for Redis COMMAND-based request and response policy routing for cluster clients. This feature enables intelligent command routing and response aggregation based on Redis command metadata.
|
||||||
|
|
||||||
|
**Key Features:**
|
||||||
|
- **Command Policy Loader**: Automatically parses and caches COMMAND metadata with routing/aggregation hints
|
||||||
|
- **Enhanced Routing Engine**: Supports all request policies including:
|
||||||
|
- `default(keyless)` - Commands without keys
|
||||||
|
- `default(hashslot)` - Commands with hash slot routing
|
||||||
|
- `all_shards` - Commands that need to run on all shards
|
||||||
|
- `all_nodes` - Commands that need to run on all nodes
|
||||||
|
- `multi_shard` - Commands that span multiple shards
|
||||||
|
- `special` - Commands with custom routing logic
|
||||||
|
- **Response Aggregator**: Intelligently combines multi-shard replies based on response policies:
|
||||||
|
- `all_succeeded` - All shards must succeed
|
||||||
|
- `one_succeeded` - At least one shard must succeed
|
||||||
|
- `agg_sum` - Aggregate numeric responses
|
||||||
|
- `special` - Custom aggregation logic (e.g., FT.CURSOR)
|
||||||
|
- **Raw Command Support**: Policies are enforced on `Client.Do(ctx, args...)`
|
||||||
|
|
||||||
|
This feature is particularly useful for Redis Stack commands like RediSearch that need to operate across multiple shards in a cluster.
|
||||||
|
|
||||||
|
### Connection Pool Improvements
|
||||||
|
|
||||||
|
Fixed a critical defect in the connection pool's turn management mechanism that could lead to connection leaks under certain conditions. The fix ensures proper 1:1 correspondence between turns and connections.
|
||||||
|
|
||||||
|
## ✨ New Features
|
||||||
|
|
||||||
|
- Request and Response Policy Based Routing in Cluster Mode ([#3422](https://github.com/redis/go-redis/pull/3422)) by [@ofekshenawa](https://github.com/ofekshenawa)
|
||||||
|
|
||||||
|
## 🐛 Bug Fixes
|
||||||
|
|
||||||
|
- Fixed connection pool turn management to prevent connection leaks ([#3626](https://github.com/redis/go-redis/pull/3626)) by [@cyningsun](https://github.com/cyningsun)
|
||||||
|
|
||||||
|
## 🧰 Maintenance
|
||||||
|
|
||||||
|
- chore(deps): bump rojopolis/spellcheck-github-actions from 0.54.0 to 0.55.0 ([#3627](https://github.com/redis/go-redis/pull/3627))
|
||||||
|
|
||||||
|
## 👥 Contributors
|
||||||
|
|
||||||
|
We'd like to thank all the contributors who worked on this release!
|
||||||
|
|
||||||
|
[@cyningsun](https://github.com/cyningsun), [@ofekshenawa](https://github.com/ofekshenawa), [@ndyakov](https://github.com/ndyakov)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/redis/go-redis/compare/v9.17.1...v9.18.0-beta.1
|
||||||
|
|
||||||
# 9.17.1 (2025-11-25)
|
# 9.17.1 (2025-11-25)
|
||||||
|
|
||||||
## 🐛 Bug Fixes
|
## 🐛 Bug Fixes
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ go 1.18
|
|||||||
replace github.com/redis/go-redis/v9 => ../..
|
replace github.com/redis/go-redis/v9 => ../..
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
go.uber.org/zap v1.24.0
|
go.uber.org/zap v1.24.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ go 1.18
|
|||||||
replace github.com/redis/go-redis/v9 => ../..
|
replace github.com/redis/go-redis/v9 => ../..
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
github.com/zeebo/xxh3 v1.0.2
|
github.com/zeebo/xxh3 v1.0.2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ go 1.18
|
|||||||
|
|
||||||
replace github.com/redis/go-redis/v9 => ../..
|
replace github.com/redis/go-redis/v9 => ../..
|
||||||
|
|
||||||
require github.com/redis/go-redis/v9 v9.17.1
|
require github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ replace github.com/redis/go-redis/v9 => ../..
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ go 1.18
|
|||||||
|
|
||||||
replace github.com/redis/go-redis/v9 => ../..
|
replace github.com/redis/go-redis/v9 => ../..
|
||||||
|
|
||||||
require github.com/redis/go-redis/v9 v9.17.1
|
require github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ replace github.com/redis/go-redis/extra/redisotel/v9 => ../../extra/redisotel
|
|||||||
replace github.com/redis/go-redis/extra/rediscmd/v9 => ../../extra/rediscmd
|
replace github.com/redis/go-redis/extra/rediscmd/v9 => ../../extra/rediscmd
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/redis/go-redis/extra/redisotel/v9 v9.17.1
|
github.com/redis/go-redis/extra/redisotel/v9 v9.18.0-beta.1
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
github.com/uptrace/uptrace-go v1.21.0
|
github.com/uptrace/uptrace-go v1.21.0
|
||||||
go.opentelemetry.io/otel v1.22.0
|
go.opentelemetry.io/otel v1.22.0
|
||||||
)
|
)
|
||||||
@@ -25,7 +25,7 @@ require (
|
|||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/golang/protobuf v1.5.3 // indirect
|
github.com/golang/protobuf v1.5.3 // indirect
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect
|
||||||
github.com/redis/go-redis/extra/rediscmd/v9 v9.17.1 // indirect
|
github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.1 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/runtime v0.46.1 // indirect
|
go.opentelemetry.io/contrib/instrumentation/runtime v0.46.1 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ go 1.18
|
|||||||
|
|
||||||
replace github.com/redis/go-redis/v9 => ../..
|
replace github.com/redis/go-redis/v9 => ../..
|
||||||
|
|
||||||
require github.com/redis/go-redis/v9 v9.17.1
|
require github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ replace github.com/redis/go-redis/v9 => ../..
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ replace github.com/redis/go-redis/v9 => ../..
|
|||||||
replace github.com/redis/go-redis/extra/rediscmd/v9 => ../rediscmd
|
replace github.com/redis/go-redis/extra/rediscmd/v9 => ../rediscmd
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/redis/go-redis/extra/rediscmd/v9 v9.17.1
|
github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.1
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
go.opencensus.io v0.24.0
|
go.opencensus.io v0.24.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ replace github.com/redis/go-redis/v9 => ../..
|
|||||||
require (
|
require (
|
||||||
github.com/bsm/ginkgo/v2 v2.12.0
|
github.com/bsm/ginkgo/v2 v2.12.0
|
||||||
github.com/bsm/gomega v1.27.10
|
github.com/bsm/gomega v1.27.10
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ replace github.com/redis/go-redis/v9 => ../..
|
|||||||
replace github.com/redis/go-redis/extra/rediscmd/v9 => ../rediscmd
|
replace github.com/redis/go-redis/extra/rediscmd/v9 => ../rediscmd
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/redis/go-redis/extra/rediscmd/v9 v9.17.1
|
github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.1
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
go.opentelemetry.io/otel v1.22.0
|
go.opentelemetry.io/otel v1.22.0
|
||||||
go.opentelemetry.io/otel/metric v1.22.0
|
go.opentelemetry.io/otel/metric v1.22.0
|
||||||
go.opentelemetry.io/otel/sdk v1.22.0
|
go.opentelemetry.io/otel/sdk v1.22.0
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ replace github.com/redis/go-redis/v9 => ../..
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/prometheus/client_golang v1.14.0
|
github.com/prometheus/client_golang v1.14.0
|
||||||
github.com/redis/go-redis/v9 v9.17.1
|
github.com/redis/go-redis/v9 v9.18.0-beta.1
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ package redis
|
|||||||
|
|
||||||
// Version is the current release version.
|
// Version is the current release version.
|
||||||
func Version() string {
|
func Version() string {
|
||||||
return "9.17.1"
|
return "9.18.0-beta.1"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user