Skip to content

[Redis 8.10] Add LMVOVEM/BLMOVEM commands - #4635

Merged
uglide merged 8 commits into
masterfrom
lmovem-8.10
Jul 28, 2026
Merged

uglide merged 8 commits into
masterfrom
lmovem-8.10

Conversation

@a-TODO-rov

@a-TODO-rov a-TODO-rov commented Jul 22, 2026 •

Copy link
Copy Markdown
Contributor

Closes #4637


Note

Low Risk
Additive API mirroring existing LMOVE/BLMOVE patterns; behavior depends on Redis 8.10+ server support and is covered by broad tests.

Overview
Adds client support for Redis LMOVEM and BLMOVEM, which atomically move one or more list elements between keys and return them as a list (unlike LMOVE, which returns a single value).

New types LMoveMParams (optional COUNT / EXACTLY plus OBO or BULK ordering via ListMoveOrder) and protocol keyword EXACTLY wire the multi-element move block. lmovem / blmovem are exposed for string and binary keys across Jedis, UnifiedJedis, pipelines, and list command interfaces, with integration, cluster, mocked, and unit tests.

Reviewed by Cursor Bugbot for commit fb826ac. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 38c46da. Configure here.

@github-actions

github-actions Bot commented Jul 22, 2026 •

Copy link
Copy Markdown

Test Results

β€‡β€ˆ206 files  ± 0β€‚β€ƒβ€‡β€ˆ206 suites  Β±0   10m 19s ⏱️ -10s
7β€ˆ935 tests +26  7β€ˆ875 βœ… +92  60 πŸ’€  -β€Š66  0 ❌ Β±0 
7β€ˆ955 runsβ€Š +26  7β€ˆ895 βœ… +92  60 πŸ’€  -β€Š66  0 ❌ Β±0 

Results for commit aa14034. ± Comparison against base commit e436088.

♻️ This comment has been updated with latest results.

@a-TODO-rov
a-TODO-rov requested a review from ggivo July 22, 2026 07:18
@a-TODO-rov a-TODO-rov linked an issue Jul 22, 2026 that may be closed by this pull request
4 tasks
@ggivo ggivo added the feature label Jul 22, 2026
@ggivo ggivo added this to the 8.0.0 milestone Jul 22, 2026
@Test
@EnabledOnCommand("LMOVEM")
@ConditionalOnEnv(value = TestEnvUtil.ENV_REDIS_ENTERPRISE, enabled = false)
public void lmovem() {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

any reason not to follow same test scenariou from UnifiedJedis absed tests in ListCommandsTestBase

@Test
@EnabledOnCommand("BLMOVEM")
@ConditionalOnEnv(value = TestEnvUtil.ENV_REDIS_ENTERPRISE, enabled = false)
public void blmovem() {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

any reason not to follow same test scenariou from UnifiedJedis absed tests in ListCommandsTestBase

a-TODO-rov and others added 4 commits July 28, 2026 09:44
The aggregate lmovem/blmovem tests mixed the four public overloads,
so a failure did not identify the API at fault and the no-params
blocking overload had no coverage at all. One test per overload,
extended with a satisfiable EXACTLY case and missing-source checks;
cluster overrides split to match.
Hardcoded key names on the shared test endpoints can collide across
suites; the registry namespaces them per test and deletes them in
teardown instead of relying on the blanket flush. Cluster overrides
hash-tag the per-test prefix so source and destination stay in one
slot.

@ggivo ggivo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

@uglide
uglide merged commit 56848fd into master Jul 28, 2026
13 checks passed
@uglide
uglide deleted the lmovem-8.10 branch July 28, 2026 15:23
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.

[Redis 8.10] Add support for LMOVEM and BLMOVEM commands

3 participants