*Redis LINDEX 命令
返回 List 中指定索引位置的元素。
*语法
LINDEX key index
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | List 的键名 |
| index | Integer | 是 | 索引,0 表示第一个,-1 表示最后一个 |
*返回值
| 条件 | 返回值 |
|---|---|
| 索引有效 | 返回对应元素(String) |
| 索引超出范围 | nil |
| key 不存在 | nil |
*时间复杂度
O(N),N 为遍历的元素数量。index 接近头部或尾部时较快。
*示例
> RPUSH mylist a b c
(integer) 3
> LINDEX mylist 0
"a"
> LINDEX mylist -1
"c"
> LINDEX mylist 10
(nil)
*常见错误
- 对非 List 使用:返回 WRONGTYPE。
*最佳实践
- 随机访问:List 是双向链表,LINDEX 中间元素需要 O(N) 遍历。频繁随机访问应考虑 Sorted Set。
- 栈顶/队列首尾:访问 0 或 -1 是 O(1),适合栈/队列场景。
*FAQ
Q: LINDEX 是 O(1) 吗? A: 不是。List 是链表,LINDEX 需要遍历到对应位置。头部/尾部附近较快,中间较慢。