*Redis ARNEXT 命令
ARNEXT 返回数组中指定元素的后一个元素。
*语法
ARNEXT key element
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 数组键名 |
| element | String / Bytes | 是 | 目标元素值 |
*返回值
- String:目标元素的后一个元素值
- Nil:目标元素是最后一个,或元素不存在,或 key 不存在
- Error:key 存储的不是 Array 类型
*时间复杂度
O(N),N 为数组长度(需要线性搜索匹配 element)。
*示例
*获取下一个元素
> ARSET letters "a" "b" "c" "d"
OK
> ARNEXT letters "b"
"c"
*最后一个元素无后继
> ARNEXT letters "d"
(nil)
*不存在的元素
> ARNEXT letters "z"
(nil)
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| WRONGTYPE | key 不是 Array 类型 | 确认 key 的数据类型 |
*最佳实践
- 适合实现简单的顺序导航(如上一篇/下一篇)
- 数组中元素不唯一时,返回第一个匹配的后继
- 频繁顺序访问考虑使用索引配合 ARGETRANGE
*FAQ
Q1: 数组中有重复元素会怎样? A: 返回第一个匹配 element 的后继元素。
Q2: 可以用负数索引代替吗? A: ARNEXT 按值查找,如果已知索引,直接用 ARGETRANGE key index+1 index+1 更高效。
Q3: 有 ARPREV 命令吗? A: 无内置 ARPREV,可用自定义逻辑或 ARRING 实现循环访问。