AROP

对范围内的数组元素执行聚合操作。

语法

AROP key start end

引入版本:8.8.0

复杂度摘要:O(P)

对范围内的数组元素执行聚合操作。

必需参数

key

保存数组的键的名称。

start

要聚合的范围中第一个元素的从零开始的整数索引。

end

要聚合的范围(含)中最后一个元素的从零开始的整数索引。无论参数顺序如何,该命令始终从较低的索引到较高的索引进行扫描。

operation

应用于 [start, end] 中所有非空元素的聚合函数。其中之一:

  • SUM — 以批量字符串形式返回所有数值的总和。
  • MIN — 以批量字符串形式返回最小数值。
  • MAX — 以批量字符串形式返回最大数值。
  • AND — 返回所有值的按位 AND,将每个值视为整数(浮点数被截断为零)。
  • OR — 返回所有值的按位或,将每个值视为整数(浮点数被截断为零)。
  • XOR — 返回所有值的按位异或,将每个值视为整数(浮点数被截断为零)。
  • MATCH value — 返回值等于 value 的元素计数作为整数回复。
  • USED — 以整数回复形式返回范围内非空元素的计数。

当范围内不存在数字元素时,SUM、MIN 和 MAX 返回 nil。当范围为空时,AND、OR 和 XOR 返回 nil。

示例

redis> ARMSET myarray 0 "10" 1 "20" 2 "30"
(integer) 3
redis> AROP myarray 0 2 SUM
"60"
redis> AROP myarray 0 2 MIN
"10"
redis> AROP myarray 0 2 MAX
"30"
redis> AROP myarray 0 2 MATCH "10"
(integer) 1
redis> AROP myarray 0 2 USED
(integer) 3
redis> ARMSET flags 0 "255" 1 "15" 2 "240"
(integer) 3
redis> AROP flags 0 2 AND
(integer) 0
redis> AROP flags 0 2 OR
(integer) 255

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
❌主动-主动
❌ 标准
❌主动-主动

返回值

RESP2

以下之一: * 批量字符串回复:操作结果。 * 整数回复:MATCH、USED、AND、OR、XOR 的整数结果。 * 无回复:如果没有元素与操作匹配,则为空。

RESP3

以下之一: * 批量字符串回复:操作结果。 * 整数回复:MATCH、USED、AND、OR、XOR 的整数结果。 * 空回复:如果没有元素与操作匹配,则为空。

资料来源:Redis 官方 AROP 文档;中文内容参考 Redis 文档许可。