Repository navigation
[Redis 8.10] Add LMVOVEM/BLMOVEM commands - #4635
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
β 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.
Test Resultsββ206 filesβ Β±β0ββββ206 suitesβ Β±0βββ10m 19s β±οΈ -10s Results for commit aa14034.βΒ± Comparison against base commit e436088. β»οΈ This comment has been updated with latest results. |
| @Test | ||
| @EnabledOnCommand("LMOVEM") | ||
| @ConditionalOnEnv(value = TestEnvUtil.ENV_REDIS_ENTERPRISE, enabled = false) | ||
| public void lmovem() { |
There was a problem hiding this comment.
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() { |
There was a problem hiding this comment.
any reason not to follow same test scenariou from UnifiedJedis absed tests in ListCommandsTestBase
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.
# Conflicts: # pom.xml

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(optionalCOUNT/EXACTLYplusOBOorBULKordering viaListMoveOrder) and protocol keywordEXACTLYwire the multi-element move block.lmovem/blmovemare exposed for string and binary keys acrossJedis,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.