Skip to content

Conversation

ggivo
Copy link
Collaborator

@ggivo ggivo commented Jul 17, 2025

Pull Request Overview

Adds support for Redis 8 vector set commands across unified, pooled, and cluster clients, including new test coverage and API interfaces.

  • Introduces vector set test utilities and base test classes (VectorTestUtils, VectorSetCommandsTestBase, ExtendedVectorSetCommandsTestBase).
  • Adds new command interfaces for vector sets (VectorSetCommands, VectorSetBinaryCommands, VectorSetPipelineCommands, VectorSetPipelineBinaryCommands) and integrates them into existing pipelines and Jedis command surfaces.
  • Updates pooled and cluster test classes to use a shared createTestClient pattern and remove manual tear-down logic.

Closes #4169

@ggivo ggivo requested a review from Copilot July 17, 2025 13:16
@ggivo ggivo marked this pull request as draft July 17, 2025 13:18
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Adds support for Redis 8 vector set commands across unified, pooled, and cluster clients, including new test coverage and API interfaces.

  • Introduces vector set test utilities and base test classes (VectorTestUtils, VectorSetCommandsTestBase, ExtendedVectorSetCommandsTestBase).
  • Adds new command interfaces for vector sets (VectorSetCommands, VectorSetBinaryCommands, VectorSetPipelineCommands, VectorSetPipelineBinaryCommands) and integrates them into existing pipelines and Jedis command surfaces.
  • Updates pooled and cluster test classes to use a shared createTestClient pattern and remove manual tear-down logic.

Reviewed Changes

Copilot reviewed 51 out of 51 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/main/java/redis/clients/jedis/commands/VectorSetCommands.java New interface for core vector set commands
src/main/java/redis/clients/jedis/commands/VectorSetBinaryCommands.java New interface for binary vector set commands
src/main/java/redis/clients/jedis/commands/VectorSetPipelineCommands.java New pipeline interface for vector set commands
src/main/java/redis/clients/jedis/commands/VectorSetPipelineBinaryCommands.java New pipeline interface for binary vector set commands
src/main/java/redis/clients/jedis/commands/PipelineCommands.java Added VectorSetPipelineCommands
src/main/java/redis/clients/jedis/commands/PipelineBinaryCommands.java Added VectorSetPipelineBinaryCommands
src/main/java/redis/clients/jedis/commands/JedisCommands.java Added VectorSetCommands
src/main/java/redis/clients/jedis/commands/JedisBinaryCommands.java Added VectorSetBinaryCommands
src/test/java/redis/clients/jedis/commands/unified/VectorTestUtils.java Utility for FP32 <→ float conversions in tests
src/test/java/redis/clients/jedis/commands/unified/VectorSetCommandsTestBase.java Core integration tests for all vector set commands
src/test/java/redis/clients/jedis/commands/unified/ExtendedVectorSetCommandsTestBase.java Extended sample tests based on Redis documentation
src/test/java/redis/clients/jedis/commands/unified/pipelined/* Updated pooled tests to use createTestClient pattern
src/test/java/redis/clients/jedis/commands/unified/cluster/* Updated cluster tests to use createTestClient
src/test/java/redis/clients/jedis/commands/unified/UnifiedJedisCommandsTestBase.java Added abstract createTestClient and lifecycle hooks
src/test/java/redis/clients/jedis/commands/unified/StreamsBinaryCommandsTestBase.java Removed unused setUpTestClient stub before streams
Comments suppressed due to low confidence (1)

src/test/java/redis/clients/jedis/commands/unified/VectorSetCommandsTestBase.java:199

  • The noQuantParams variable is mistakenly initialized with .q8(). It should use .noQuant() to test the NOQUANT quantization scenario.
    VAddParams quantParams = new VAddParams().q8();

@ggivo ggivo force-pushed the feature/vector-set branch from 6e0e51e to 0ac4ad8 Compare July 18, 2025 08:57
@ggivo ggivo marked this pull request as ready for review July 18, 2025 11:48
@ggivo ggivo requested review from uglide, tishun and atakavci July 18, 2025 11:49
atakavci
atakavci previously approved these changes Jul 22, 2025
Copy link
Contributor

@atakavci atakavci left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
just a few nits.

  - remove duplicated DOUBLE_LIST
  - reduce code duplication
atakavci
atakavci previously approved these changes Jul 23, 2025
Copy link
Contributor

@atakavci atakavci left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ggivo ggivo added the feature label Jul 23, 2025
@ggivo ggivo added this to the 6.1.0 milestone Jul 23, 2025
@ggivo ggivo modified the milestones: 6.1.0, 7.0.0 Aug 5, 2025
@ggivo ggivo modified the milestones: 7.0.0, 6.2.0 Aug 13, 2025
@ggivo ggivo requested a review from uglide August 13, 2025 12:53
uglide
uglide previously approved these changes Aug 14, 2025
Copy link
Contributor

@uglide uglide left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ggivo ggivo merged commit affb536 into redis:master Aug 14, 2025
13 of 14 checks passed
@ggivo ggivo deleted the feature/vector-set branch August 14, 2025 17:15
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Aug 28, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [redis.clients:jedis](https://github.com/redis/jedis) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `6.1.0` -> `6.2.0` |
|
[com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`6.98.1` -> `6.99.0` |

---

### Release Notes

<details>
<summary>redis/jedis (redis.clients:jedis)</summary>

### [`v6.2.0`](https://github.com/redis/jedis/releases/tag/v6.2.0):
6.2.0

### Changes

#### 🚀 New Features

- \[vector sets] Support for VSIM WITHATTRIBS (CAE-1421)
([#&#8203;4260](redis/jedis#4260))
- Support Redis 8 vector sets
[#&#8203;4169](redis/jedis#4169)
([#&#8203;4203](redis/jedis#4203))

#### 🐛 Bug Fixes

- Fix JedisBroadcastException in functionLoadReplace for Redis Cluster
([#&#8203;4219](redis/jedis#4219))

#### 🧰 Maintenance

- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.2 to
3.11.3 ([#&#8203;4246](redis/jedis#4246))
- Bump org.junit:junit-bom from 5.13.3 to 5.13.4
([#&#8203;4216](redis/jedis#4216))
- docs: Improve Javadoc for HostAndPortMapper
([#&#8203;4112](redis/jedis#4112))
([#&#8203;4227](redis/jedis#4227))

#### Contributors

We'd like to thank all the contributors who worked on this release!

[@&#8203;JuneYub](https://github.com/JuneYub),
[@&#8203;Kguswo](https://github.com/Kguswo),
[@&#8203;dependabot](https://github.com/dependabot),
[@&#8203;dependabot](https://github.com/dependabot)\[bot] and
[@&#8203;ggivo](https://github.com/ggivo)

</details>

<details>
<summary>googleapis/java-spanner
(com.google.cloud:google-cloud-spanner)</summary>

###
[`v6.99.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6990-2025-08-26)

##### Features

- Support read lock mode for R/W transactions
([#&#8203;4010](googleapis/java-spanner#4010))
([7d752d6](googleapis/java-spanner@7d752d6))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.62.0
([52c68db](googleapis/java-spanner@52c68db))
- GetCommitResponse() should return error if tx has not committed
([#&#8203;4021](googleapis/java-spanner#4021))
([a2c179f](googleapis/java-spanner@a2c179f))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.52.0
([#&#8203;4024](googleapis/java-spanner#4024))
([7e3294f](googleapis/java-spanner@7e3294f))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 9d031eaaab2d726402884bd41681c856931f12f0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support Redis 8 vector sets
3 participants