Repository navigation
Support for 'Array' commands (Redis 8.8) - #4532
Merged
Merged
Conversation
atakavci
marked this pull request as ready for review
May 20, 2026 09:11
- revisit arrayinfo and arrayinfofull - replace longrange with primitves where longrange is single item
- update unit tests
ggivo
reviewed
May 22, 2026
ggivo
left a comment
Collaborator
There was a problem hiding this comment.
LGTM from api perspective, have two questions
- I believe we should mark all Array API related public interfcae as experimental to match server in preview
- Second not sure what is the benfit of Inroducing Builder/output of type OptionalLong
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Reviewed by Cursor Bugbot for commit 0dc453b. Configure here.
|
|
||
| import java.util.List; | ||
| import java.util.Map; | ||
| import java.util.OptionalLong; |
There was a problem hiding this comment.
Unused OptionalLong import left from prior implementation
Low Severity
The java.util.OptionalLong import was added but is never used anywhere in the file. Based on the PR discussion, OptionalLong was originally considered for the arnext return type but was changed to Long per reviewer feedback. The import was left behind from that earlier implementation.
Reviewed by Cursor Bugbot for commit 0dc453b. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Note
Medium Risk
Moderate risk because it adds a new command surface across
Protocol,CommandObjects,Jedis/UnifiedJedis, and pipelining, so mistakes could affect command encoding/response parsing for new operations (though changes are largely additive).Overview
Adds end-to-end support for Redis Array commands (
ARCOUNT,ARDEL,ARDELRANGE,ARGET*,ARGREP,ARINFO,ARINSERT,ARLASTITEMS,ARLEN,ARMGET/ARMSET,ARNEXT,AROP,ARRING,ARSCAN,ARSEEK,ARSET) acrossCommandObjects,Jedis,UnifiedJedis, andPipeliningBase(string + binary variants).Introduces new API types for this feature:
ArrayCommands/ArrayBinaryCommands(+ pipeline equivalents),ArgrepParams,LongRange,ArrayAggregate/ArrayBitwise, and typed responsesArrayInfo/ArrayFullInfo, with newBuilderFactorybuilders to parseARINFOand indexed value replies.Updates
Protocolto register the new commands/keywords, extends aggregate command interfaces (JedisCommands,PipelineCommands, etc.) to include array support, and adds unit/integration tests pluspom.xmlsurefire includes to run the new test suites.Reviewed by Cursor Bugbot for commit d95684d. Bugbot is set up for automated code reviews on this repo. Configure here.