*Redis ARLASTITEMS 命令
ARLASTITEMS 返回数组末尾的 N 个元素。
*语法
ARLASTITEMS key [COUNT count]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 数组键名 |
| COUNT count | Integer | 否 | 返回末尾元素数量,默认 1 |
*返回值
- Array:末尾 N 个元素(按原顺序)
- Empty array:数组为空或 count 为 0
- Nil:key 不存在
- Error:key 存储的不是 Array 类型
*时间复杂度
O(N),N 为 count 值。
*示例
*获取最后一个元素
> ARSET logs "2024-01-01" "2024-01-02" "2024-01-03" "2024-01-04"
OK
> ARLASTITEMS logs
1) "2024-01-04"
*获取末尾多个元素
> ARLASTITEMS logs COUNT 3
1) "2024-01-02"
2) "2024-01-03"
3) "2024-01-04"
*数组元素不足 count
> ARSET small "a" "b"
OK
> ARLASTITEMS small COUNT 5
1) "a"
2) "b"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| WRONGTYPE | key 不是 Array 类型 | 确认 key 的数据类型 |
| ERR value is not an integer | count 非整数 | 传入整数 count |
*最佳实践
- 获取最新日志、最新消息的首选命令
- 比 ARGETRANGE key -N -1 语义更直观
- 配合 ARING/ARRING 实现循环缓冲区的最新数据读取
*FAQ
Q1: ARLASTITEMS 和 ARGETRANGE 获取末尾有什么区别? A: ARLASTITEMS 语义更直观(获取末尾 N 个),且默认 count=1;ARGETRANGE 需要手动计算负数索引。
Q2: count 大于数组长度怎么办? A: 返回整个数组,不会报错或填充空值。
Q3: count 为 0 会怎样? A: 返回空数组。