|
1 | 1 | # Release Notes |
2 | 2 |
|
| 3 | +# 9.18.0-beta.1 (2025-12-01) |
| 4 | + |
| 5 | +## 🚀 Highlights |
| 6 | + |
| 7 | +### Request and Response Policy Based Routing in Cluster Mode |
| 8 | + |
| 9 | +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. |
| 10 | + |
| 11 | +**Key Features:** |
| 12 | +- **Command Policy Loader**: Automatically parses and caches COMMAND metadata with routing/aggregation hints |
| 13 | +- **Enhanced Routing Engine**: Supports all request policies including: |
| 14 | + - `default(keyless)` - Commands without keys |
| 15 | + - `default(hashslot)` - Commands with hash slot routing |
| 16 | + - `all_shards` - Commands that need to run on all shards |
| 17 | + - `all_nodes` - Commands that need to run on all nodes |
| 18 | + - `multi_shard` - Commands that span multiple shards |
| 19 | + - `special` - Commands with custom routing logic |
| 20 | +- **Response Aggregator**: Intelligently combines multi-shard replies based on response policies: |
| 21 | + - `all_succeeded` - All shards must succeed |
| 22 | + - `one_succeeded` - At least one shard must succeed |
| 23 | + - `agg_sum` - Aggregate numeric responses |
| 24 | + - `special` - Custom aggregation logic (e.g., FT.CURSOR) |
| 25 | +- **Raw Command Support**: Policies are enforced on `Client.Do(ctx, args...)` |
| 26 | + |
| 27 | +This feature is particularly useful for Redis Stack commands like RediSearch that need to operate across multiple shards in a cluster. |
| 28 | + |
| 29 | +### Connection Pool Improvements |
| 30 | + |
| 31 | +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. |
| 32 | + |
| 33 | +## ✨ New Features |
| 34 | + |
| 35 | +- Request and Response Policy Based Routing in Cluster Mode ([#3422](https://github.com/redis/go-redis/pull/3422)) by [@ofekshenawa](https://github.com/ofekshenawa) |
| 36 | + |
| 37 | +## 🐛 Bug Fixes |
| 38 | + |
| 39 | +- Fixed connection pool turn management to prevent connection leaks ([#3626](https://github.com/redis/go-redis/pull/3626)) by [@cyningsun](https://github.com/cyningsun) |
| 40 | + |
| 41 | +## 🧰 Maintenance |
| 42 | + |
| 43 | +- chore(deps): bump rojopolis/spellcheck-github-actions from 0.54.0 to 0.55.0 ([#3627](https://github.com/redis/go-redis/pull/3627)) |
| 44 | + |
| 45 | +## 👥 Contributors |
| 46 | + |
| 47 | +We'd like to thank all the contributors who worked on this release! |
| 48 | + |
| 49 | +[@cyningsun](https://github.com/cyningsun), [@ofekshenawa](https://github.com/ofekshenawa), [@ndyakov](https://github.com/ndyakov) |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +**Full Changelog**: https://github.com/redis/go-redis/compare/v9.17.1...v9.18.0-beta.1 |
| 54 | + |
3 | 55 | # 9.17.1 (2025-11-25) |
4 | 56 |
|
5 | 57 | ## 🐛 Bug Fixes |
|
0 commit comments