首页/数据/数据库速查/LINDEX / LSET 按下标读写
Redis 命令96 条

LINDEX / LSET 按下标读写

LINDEX 按下标取元素(负数从右数),LSET 按下标改写;越界读取返回 nil,越界写入直接报错。

数据库速查数据更新于 2026-10-12

示例

示例
RPUSH letters a b c
LINDEX letters 0     # a
LINDEX letters -1    # c
LINDEX letters 99    # nil
LSET letters 1 B     # OK,列表变 a B c
LSET letters 9 x     # ERR index out of range
LINDEXO(N) 随机访问(链表结构)
LSET仅能改写已存在的下标
注意头尾操作 O(1),中间下标操作 O(N)
List 不是数组:LINDEX 到中部代价随列表长度增长,随机访问密集的场景应改用 Hash/ZSet。

易错点

  • 把 List 当数组频繁 LINDEX:每次都是链表遍历,慢查询名单常客
  • LSET 不存在的位置:直接报错而不是自动扩容,先 LLEN 校验

数据来源与参考

  • Redis 官方文档: LINDEX
  • Redis 官方文档: LSET

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌