系列导读:本篇将深入讲解 Redis 列表(List)的所有操作命令及实际应用场景。
文章目录
一、列表命令总览
| 命令 | 说明 |
|---|---|
| LPUSH/RPUSH | 左/右插入 |
| LPOP/RPOP | 左/右弹出 |
| LRANGE | 获取范围 |
| LLEN | 获取长度 |
| LINDEX | 按索引获取 |
| LSET | 按索引设置 |
| BLPOP/BRPOP | 阻塞弹出 |
二、基础操作命令
2.1 插入操作
bash
# 左侧插入(头部)
LPUSH mylist "a" "b" "c"
# 右侧插入(尾部)
RPUSH mylist "d" "e"
# 仅当列表存在时插入
LPUSHX mylist "f"
RPUSHX mylist "g"
2.2 弹出操作
bash
# 左侧弹出
LPOP mylist
# 右侧弹出
RPOP mylist
# 弹出并推入另一个列表
RPOPLPUSH source dest
2.3 查询操作
bash
# 获取范围内元素
LRANGE mylist 0 -1 # 全部
LRANGE mylist 0 9 # 前10个
# 按索引获取
LINDEX mylist 0
# 获取长度
LLEN mylist
2.4 修改操作
bash
# 按索引设置
LSET mylist 0 "newvalue"
# 在元素前/后插入
LINSERT mylist BEFORE "a" "new"
LINSERT mylist AFTER "a" "new"
# 删除指定元素
LREM mylist 2 "a" # 删除2个"a"
# 修剪列表
LTRIM mylist 0 99 # 只保留前100个
三、阻塞操作命令
3.1 阻塞弹出
bash
# 阻塞左侧弹出
BLPOP list1 list2 30 # 30秒超时
# 阻塞右侧弹出
BRPOP list1 list2 30
# 阻塞弹出并推入
BRPOPLPUSH source dest 30
四、实战应用场景
4.1 消息队列
bash
# 生产者
LPUSH queue:orders "order:1001"
# 消费者
RPOP queue:orders
# 或阻塞消费
BRPOP queue:orders 0
4.2 最新列表
bash
# 添加最新文章
LPUSH latest:articles "article:100"
LTRIM latest:articles 0 99 # 只保留100篇
# 获取最新文章
LRANGE latest:articles 0 9
4.3 时间线
bash
# 发布动态
LPUSH timeline:user:1001 "post:1"
# 获取时间线
LRANGE timeline:user:1001 0 19
总结
本文我们学习了:
✅ 基础操作 :LPUSH/RPUSH/LPOP/RPOP
✅ 查询操作 :LRANGE/LINDEX/LLEN
✅ 阻塞操作 :BLPOP/BRPOP
✅ 应用场景:消息队列、最新列表、时间线
下篇预告 :Redis 从入门到精通(七):集合操作详解
作者 :刘~浪地球
系列 :Redis 从入门到精通(六)
更新时间:2026-04-04