Skip to content

Added support for new array commands#1672

Draft
vladvildanov wants to merge 1 commit into
mainfrom
vv-array-commands-support
Draft

Added support for new array commands#1672
vladvildanov wants to merge 1 commit into
mainfrom
vv-array-commands-support

Conversation

@vladvildanov
Copy link
Copy Markdown
Contributor

Adds full Predis support for the new Redis 8.8 array data type: 18 commands, public API on Client/ClientContextInterface, cluster-mode routing, and unit + integration test coverage on RESP2 and RESP3.

Commands

Group Commands
Read arget, armget, argetrange, arscan, arcount, arlen, arnext, arinfo
Write arset, armset, arinsert, arring, arseek
Delete ardel, ardelrange
Search argrep
Aggregate arop
History arlastitems

API design notes

  • Variadic-value commands (ARSET, ARDEL, ARMGET, ARINSERT, ARRING) accept either spread args or a single array
  • ARMSET accepts an [index => value] PHP dictionary and flattens to wire format.
  • ARDELRANGE accepts flat (start, end, start, end) or [[start, end], [start, end]].
  • ARGREP and AROP validate enum arguments at the boundary (UnexpectedValueException) but tolerate the bare ['key'] shape so cluster slot extraction keeps working.
  • ARINFO normalizes the RESP2 flat key-value array to a dict via CommandUtility::arrayToDictionary, so RESP2 and RESP3 return the same shape.

@vladvildanov vladvildanov requested a review from a team as a code owner May 7, 2026 12:48
@vladvildanov vladvildanov requested a review from tillkruss May 7, 2026 12:48
@vladvildanov vladvildanov marked this pull request as draft May 7, 2026 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants