本页是 Redis 模块的学习地图:把缓存、数据结构、持久化、集群与工程实践按主题分组,理清彼此依赖,给出一条从入门到生产的推荐顺序,帮你少走弯路。

主题分组

专题内容可以装进五个篮子:

  1. 缓存基础:缓存为什么存在、缓存穿透/击穿/雪崩、Cache Aside 等读写策略。这是用 Redis 之前的必修课——问题大多出在「怎么用缓存」,而不是 Redis 本身。
  2. 数据结构与原理:String、List、Hash、Set、ZSet 五种基础类型加 Bitmap、HyperLogLog、GEO 三种特殊类型,以及 SDS、跳表、listpack 等底层实现。这是整个模块的地基。
  3. 持久化与内存:RDB 快照、AOF 日志与混合持久化、过期删除与内存淘汰策略、内存碎片。解决「数据会不会丢、内存会不会爆」。
  4. 高可用与集群:主从复制、哨兵、Cluster 分片与故障转移。把单机 Redis 变成生产可用的服务。
  5. 工程实践:阻塞排查(慢命令、大 key、热 key)、延时任务、Stream 消息队列。属于综合应用层。

依赖关系

  • 数据结构是几乎所有主题的前置:持久化保存的是它,集群搬运的也是它,阻塞问题里的大 key 更要懂它的底层编码。
  • 缓存异常三兄弟(穿透/击穿/雪崩)依赖对过期机制与淘汰策略的理解,先看数据结构再看缓存治理会更顺。
  • 哨兵与 Cluster 建立在主从复制之上,故障转移又依赖复制偏移量与 PSYNC 的概念,顺序不能反。
  • 延时任务与 Stream MQ 是「应用层综合题」:前者用到 ZSet、过期机制与持久化,后者用到 Stream、消费组与持久化,放在最后学。
  • 阻塞排查是终极大综合:单线程模型、大 key、持久化 fork、主从同步全部交汇于此。

推荐学习顺序

  1. 入门建框架:先过缓存基础面试题,再读 Redis 面试题(上)(下),带着问题清单进入后续学习。
  2. 打地基:依次学五种基本数据类型、三种特殊类型、跳表原理。每种类型按「命令 + 场景 + 底层编码」三件套来记。
  3. 数据安全:缓存读写策略 → 持久化机制 → 过期与淘汰策略。学完应能独立回答「RDB 和 AOF 怎么选」。
  4. 上生产:阻塞原因总结 → 主从与哨兵 → Cluster 集群 → 内存碎片。这一阶段重在「会排查」,而不只是「知道」。
  5. 综合应用:延时任务 → Stream 消息队列 → 回炉面试题自测,检验能否把零散知识串成方案。

配套方法:每篇学完合上文档,用自己的话复述机制,并用 redis-cli 把关键命令实操一遍;故障类主题各补一条自己项目里的真实案例,记忆会牢固得多。

高频自测问题

  • Redis 为什么快?单线程为什么能撑住高并发?
  • 五种基础类型分别适合什么场景?ZSet 为什么用跳表?
  • 缓存穿透、击穿、雪崩的区别与解法?缓存与数据库如何保一致?
  • RDB 与 AOF 的区别?AOF 重写解决什么问题?
  • 过期删除与内存淘汰策略分别有哪些?
  • 常见阻塞原因有哪些?大 key、热 key 怎么排查?
  • 主从复制、哨兵、Cluster 各解决什么问题?
  • 用 Redis 做延时任务、消息队列的可靠性边界在哪里?

能脱稿答出这八组问题,这个模块就算过关了。

小结

Redis 的学习路径是四级台阶:命令会用 → 原理懂为什么 → 场景知道何时用 → 故障知道怎么救。按上面的分组与顺序推进,遇到新问题时先定位它属于哪个篮子,再调用对应篮子的知识,比零散刷题高效得多。