KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
Redis 工程课 · 课程导读 — keel 龙骨
Redis 拔高:Stream、分布式锁与 ARQ 的参考信息:Redis 工程课 · 课程导读
你现在的起点
- 会用 Redis 的 string / hash / list / zset 和 TTL 做缓存;
- 没正经用过 Redis Stream,更没把 Redis 当「任务队列」或「运行时中枢」;
- 听说过 ARQ(基于 Redis 的 Python 异步任务队列),但只当它是个黑盒——不知道它底层就是 Redis 自己。
如果你符合上面这三条,这门课就是为你写的。
一条能走通的学习路径
Redis 运行时视角(一课说清 Redis 不只是缓存)
→ Stream 原生命令吃透(消费者组是核心,ARQ 重度依赖它)
→ Stream vs Pub/Sub vs List 选型(到底什么时候用哪个)
→ 用 redis-py 手写最小消费组(先别碰 ARQ——自己搓一遍)
→ 分布式锁(多进程互斥:SET NX EX + UUID + Lua)
→ 业务锁封装(把基础锁翻译成业务语言)
→ ARQ 源码级理解 + 落地使用(看懂它到底在 Redis 里写了什么)
两个必须先纠偏的认知
- ARQ 底层就是 Redis Stream + ZSet,不是一套独立存储。 全部任务、延迟任务、结果、job 状态都存在 Redis 里:即时任务用 Stream,延迟任务用 ZSet,结果/状态用 Hash/String。想懂 ARQ,必须先懂 Stream 本身。
- Stream 没有原生「延迟任务」。 延迟是上层(ARQ)用 ZSet 轮询模拟的。这个误区坑过很多人,第 6 章会把它彻底讲透。
学完这门课你能做什么
- 为「事件推送 / 任务队列 / 互斥控制」选对 Redis 结构,说清代价与兜底;
- 打开
redis-cli monitor,亲眼看到 ARQ 在底层发出 XADD / XREADGROUP / XACK / XCLAIM,从此不再觉得它神秘; - 落地一把生产级分布式锁,并知道它不能保什么(无看门狗续期、无 fencing token)。
前置要求
- 会 Redis 基本数据类型与 TTL;
- 建议先读 yield 详解课 04 章——第 3 章手写消费者循环时会直接用到异步生成器的思路。