Redis 深度教程 · 起点
把 Redis 当成一个可推导的系统
基于 Redis 7.x / 8.x(截至 2026-06)。概念为主、深度优先,覆盖面试原理、完整体系、AI Agent 基础设施三条线。命令语义来自官方文档,未在本机逐条复跑——涉及具体阈值处都标了版本。
·适合谁
这份教程假设你具备下面三项能力。三项都不满足时,先补再来会读得顺:
前置能力
- 能用任意语言的 Redis 客户端连上实例,跑过
SET/GET/EXPIRE这类基本命令 - 理解关系数据库的索引、事务、主从复制大致在做什么
- 在业务代码里调用过缓存,知道它在系统里解决什么问题
·不适合谁
| 如果你是 | 更合适的去处 |
|---|---|
| 完全没碰过 Redis | 先过一遍 redis.io 的 Quick Start,跑通基本命令再回来 |
| 只想查某个命令的语法 | redis.io/commands 是更快的工具,本教程讲机制不讲速查 |
| 要给 Redis 内核提 PR / 读 C 源码 | 本教程讲到机制为止;源码级直接读 redis/src(dict.c / t_zset.c / ae.c) |
·读完之后你能做到什么
Redis 的几乎所有行为都能从两块基石推导出来——为每种数据形态精选内存编码、单线程串行执行。一旦你能用这两点解释清楚「为什么一个大 key 能拖垮整个实例」「为什么分布式锁在一次 GC 停顿后就不再安全」「为什么 Redlock 至今在学术界有争议」,看 Redis 的眼光就从「背命令」变成了「推系统」。具体到可验证的能力:
读完能做到(可验证)
- 给定一个存储需求,选对数据类型,并说出它底层用哪种编码、在什么阈值退化成
hashtable/skiplist - 在白板上画出缓存穿透 / 击穿 / 雪崩的触发时序,给出各自的机制级解法(布隆过滤器 / 互斥重建 / 逻辑过期 / TTL 加随机)
- 判断一个分布式锁方案是否安全:指出
SETNX+EXPIRE的非原子缺陷、Redlock 在时钟漂移 / STW 停顿下的失效路径、Redisson watchdog 续约解决什么 - 为 LLM / Agent 系统选型 Redis 的角色:何时用原生 Vector Set、何时上专用向量库,语义缓存的
distance_threshold如何影响命中 - 读懂
redis.conf里maxmemory-policy/appendfsync/save/hash-max-listpack-entries在调什么
一句话本质
Redis 的两块基石——为每种数据形态精选内存编码、单线程串行执行——几乎能推导出它的全部行为:为什么快、为什么每条命令天然原子(这正是分布式锁 / 限流 / 计数器成立的根基)、为什么大 key 会阻塞整个实例、为什么持久化要 fork。想透这两点,Redis 就从「一堆要背的命令」变成「一个可推导的系统」。面试八股、完整体系、Agent 基础设施这三块,都是同一个模型的推论。
稳定的核心:五大数据类型、单线程模型、RDB / AOF、复制 / 哨兵 / Cluster,自 Redis 5 起高度稳定,是本教程主体。
正在动的边界:2024-03 许可从 BSD 改为源码可见的 RSALv2 / SSPL,催生 Linux 基金会的 Valkey 分叉(基于 7.2.4、仍 BSD,已成多数云厂商默认)。Redis 8.0(2025-05 GA)把 Search / JSON / 向量等模块并入内核、更名「Redis Open Source」、新增原生 Vector Set 类型、并加回 AGPLv3(现为三重许可)。最新稳定版 Redis 8.2.x(2025-10)、Valkey 9.1(2026-05)。
已被取代的旧认知:ziplist 在 7.0 改名 listpack;单个 appendonly.aof 变为多段 AOF(base + incr + manifest);Hash 在 7.4 起支持字段级 TTL;「Redis = BSD 开源」已不再成立。
这份教程会刻意在自测和「想一想」处制造停顿。读得越顺,越要警惕——下面三种自我感觉,往往是学习没真正发生的信号:
『我读得很顺』——那是眼熟,不是学会;
『我做题很快』——那是题型见过,不是真懂;
『我没卡壳』——那是没碰到机制本身。
有效的学习带摩擦:每个自测先合上答案自己写,再展开对照。直接点开答案,等于把这一节当成又读了一遍。
·概念地图
整份教程挂在下面这张图上。两块朱红基石在顶部,其余都是从它们推导出来的——读每一章时,回到这张图问一句「这是从哪块基石推出来的」。
·三条学习路径
这是一份概念教程,没有逐行代码实操章。按你的目的挑一条线走:
| 你的目的 | 建议路径 |
|---|---|
| 把面试八股讲到原理层 | 01 → 02 → 04 → 05,自测重点做「原理层 / 应用判别层」 |
| 系统建立 Redis 心智模型 | 按 01 → 02 → 03 → 04 → 05 顺序读,06 选读 |
| 转 AI Agent 全栈、想知道 Redis 在 Agent 里的位置 | 先读 01 的数据类型 + 02 的原子性,直接跳 06,再回头补 04 / 05 |
·目录
·学完之后
下一步主题
- Redis 源码:
dict.c/t_zset.c/ae.c——把本教程的「机制」落到 C 实现 - Valkey 的多线程 IO:读它把命令执行之外的工作搬出主线程的设计,对照 Redis 8 的取舍
- RediSearch / Vector Set 深入:HNSW 的
EF/M参数、int8 / 二值量化对召回的影响 - 分布式共识:ZooKeeper / etcd 的 Raft——理解为什么要正确性时它们比 Redis 锁更合适
- 多级缓存体系:Caffeine + Redis 两级、一致性哈希、缓存预热