*Redis JSON.ARRAPPEND 命令
JSON.ARRAPPEND 在 RedisJSON 中向指定路径的数组末尾追加一个或多个值。
*语法
JSON.ARRAPPEND key [path] value [value ...]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | JSON 文档键名 |
| path | String | 否 | JSONPath 路径,默认根路径 $ |
| value | String | 是 | 要追加的 JSON 值,支持多个 |
*返回值
- Integer:数组的新长度
- Error:路径不存在或目标不是数组
*时间复杂度
O(1) 每元素,N 个元素为 O(N)
*
*示例
*基本用法
> JSON.SET doc $ '{"arr": [1, 2]}'
OK
> JSON.ARRAPPEND doc $.arr 3
(integer) 3
> JSON.GET doc
"{\"arr\":[1,2,3]}"
*追加多个值
> JSON.ARRAPPEND doc $.arr 4 5 6
(integer) 6
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR path does not exist | 路径不存在 | 确认路径正确 |
| ERR path not an array | 目标不是数组 | 确认路径指向数组 |
*最佳实践
- 使用 JSONPath 精确定位数组
- 批量追加多个值减少网络往返
- 配合 JSON.ARRLEN 确认数组长度
*FAQ
Q1: 路径不存在会创建数组吗? A: 不会,路径必须已存在且为数组。
Q2: 可以追加对象吗? A: 可以,追加的值可以是任何有效的 JSON 类型。
Q3: 和 JSON.ARRINSERT 有什么区别? A: ARRAPPEND 追加到末尾;ARRINSERT 可插入到指定位置。