Skip to content

Commit d8f1d60

Browse files
committed
Merge remote-tracking branch 'origin/master' into ndyakov/feature/CAE-1313-maint-cluster
2 parents 2a301a3 + dc053a4 commit d8f1d60

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+7688
-602
lines changed

.github/actions/run-tests/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,4 @@ runs:
4949
RE_CLUSTER: "false"
5050
run: |
5151
make test.ci
52-
shell: bash
52+
shell: bash

.github/workflows/spellcheck.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
- name: Checkout
99
uses: actions/checkout@v6
1010
- name: Check Spelling
11-
uses: rojopolis/spellcheck-github-actions@0.54.0
11+
uses: rojopolis/spellcheck-github-actions@0.55.0
1212
with:
1313
config_path: .github/spellcheck-settings.yml
1414
task_name: Markdown

.github/workflows/stale-issues.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
steps:
2121
# First step: Handle regular issues (excluding needs-information)
2222
- name: Mark regular issues as stale
23-
uses: actions/stale@v9
23+
uses: actions/stale@v10
2424
with:
2525
repo-token: ${{ secrets.GITHUB_TOKEN }}
2626

@@ -64,7 +64,7 @@ jobs:
6464

6565
# Second step: Handle needs-information issues with accelerated timeline
6666
- name: Mark needs-information issues as stale
67-
uses: actions/stale@v9
67+
uses: actions/stale@v10
6868
with:
6969
repo-token: ${{ secrets.GITHUB_TOKEN }}
7070

RELEASE-NOTES.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,79 @@
11
# Release Notes
22

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+
55+
# 9.17.1 (2025-11-25)
56+
57+
## 🐛 Bug Fixes
58+
59+
- add wait to keyless commands list ([#3615](https://github.com/redis/go-redis/pull/3615)) by [@marcoferrer](https://github.com/marcoferrer)
60+
- fix(time): remove cached time optimization ([#3611](https://github.com/redis/go-redis/pull/3611)) by [@ndyakov](https://github.com/ndyakov)
61+
62+
## 🧰 Maintenance
63+
64+
- chore(deps): bump golangci/golangci-lint-action from 9.0.0 to 9.1.0 ([#3609](https://github.com/redis/go-redis/pull/3609))
65+
- chore(deps): bump actions/checkout from 5 to 6 ([#3610](https://github.com/redis/go-redis/pull/3610))
66+
- chore(script): fix help call in tag.sh ([#3606](https://github.com/redis/go-redis/pull/3606)) by [@ndyakov](https://github.com/ndyakov)
67+
68+
## Contributors
69+
We'd like to thank all the contributors who worked on this release!
70+
71+
[@marcoferrer](https://github.com/marcoferrer) and [@ndyakov](https://github.com/ndyakov)
72+
73+
---
74+
75+
**Full Changelog**: https://github.com/redis/go-redis/compare/v9.17.0...v9.17.1
76+
377
# 9.17.0 (2025-11-19)
478

579
## 🚀 Highlights

0 commit comments

Comments
 (0)