*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)

*常见错误

  1. 对非 List 使用:返回 WRONGTYPE。

*最佳实践

  1. 随机访问:List 是双向链表,LINDEX 中间元素需要 O(N) 遍历。频繁随机访问应考虑 Sorted Set。
  2. 栈顶/队列首尾:访问 0 或 -1 是 O(1),适合栈/队列场景。

*FAQ

Q: LINDEX 是 O(1) 吗? A: 不是。List 是链表,LINDEX 需要遍历到对应位置。头部/尾部附近较快,中间较慢。

Q: LINDEX 和 LRANGE 怎么选择? A: 读单个元素用 LINDEX;读区间用 LRANGE