主题
六、队列模型:LPUSH + BRPOP = FIFO
6.1 为什么 LPUSH + RPOP 是 FIFO
LPUSH(左端推入) RPOP/BRPOP(右端弹出)
←───── ─────→
[4, 3, 2, 1] 取出 1
[4, 3, 2] 取出 2
[4, 3] 取出 3
[4] 取出 4
顺序:1 → 2 → 3 → 4(先进先出 = FIFO)6.2 对比其他组合
| 推入 | 弹出 | 行为 | 顺序 |
|---|---|---|---|
| LPUSH | RPOP | 左推右弹 | FIFO(队列) |
| LPUSH | LPOP | 左推左弹 | LIFO(栈) |
| RPUSH | LPOP | 右推左弹 | FIFO(队列) |
| RPUSH | RPOP | 右推右弹 | LIFO(栈) |
6.3 本项目的完整队列流
API 端 Worker 端
LPUSH task:queue 6 ──► [6]
LPUSH task:queue 7 ──► [7, 6]
LPUSH task:queue 8 ──► [8, 7, 6]
BRPOP ──► 取出 6(最早推入)
[8, 7]
BRPOP ──► 取出 7
[8]
BRPOP ──► 取出 8
[]