Redis List 类型 详解 + 应用场景
一、先搞懂 List 是什么
Redis 的 List 本质就是双向链表特点:
- 左边能加、右边能加
- 左边能删、右边能删
- 两头操作极快
- 中间查数据慢(链表特性)
你就把它理解成:一根排队的队伍,头尾随便进出。
底层是双向链表,不是数组。
二、List 核心特点
- 有序、可重复
- 两头增删 O (1) 超快
- 中间遍历慢
- 适合做 队列、栈、消息排队
三、常用命令
redis
lpush list1 a b c # 左边加(左进)
rpush list1 x y z # 右边加(右进)
lpop list1 # 左边出
rpop list1 # 右边出
lrange list1 0 -1 # 查看全部元素
四、List 经典应用场景
1. 消息队列 / 任务队列(最常用)
生产者往右边塞 ,消费者从左边拿
- 订单任务、异步任务、日志推送、秒杀排队
- 实现简易消息队列
流程:
- 生产者:
rpush queue 任务1 - 消费者:
lpop queue
2. 栈结构(后进先出)
一边进、同一层出lpush + lpop 就是栈
适合:操作记录、撤销功能。
3. 朋友圈 / 时间线流
朋友圈、微博关注动态
- 发一条动态就 lpush 进自己的列表
- 查看朋友圈直接
lrange分页读取
天然按时间倒序,完美适配。
4. 排行榜简单版(时间序)
按发布时间排序的列表,比如:最新留言、最新评论列表
5. 限流排队、秒杀排队
秒杀时大量用户请求用 List 做排队缓冲,削峰限流。
6. 聊天室在线用户列表
维持一个有序在线用户队列。
五、一句话总结
Redis List 是双向链表 ,两头增删极快;适用场景:简易消息队列、任务队列、朋友圈时间线、评论列表、栈结构、秒杀排队、日志排队。