Skip to content

Redis 知识体系总览


第1阶段 数据结构 → 5种基础类型、底层编码
第2阶段 持久化机制 → RDB、AOF、混合持久化
第3阶段 内存管理 → 淘汰策略、LRU/LFU
第4阶段 缓存模式 → 分布式锁、双写一致
第5阶段 集群高可用 → 主从、哨兵、Cluster
Redis
┌───────────┬───────────┼───────────┐
▼ ▼ ▼ ▼
数据结构 持久化 内存管理 缓存模式
│ │ │ │
• String • RDB • 过期删除 • 分布式锁
• Hash • AOF • 淘汰策略 • 缓存穿透
• List • COW • LRU/LFU • 缓存击穿
• Set • 混合持久化 • 内存分配 • 缓存雪崩
• ZSet • • • 双写一致
专题考察频率难度核心能力
数据结构★★★★☆底层编码
持久化★★★★★COW 原理
内存管理★★★★☆淘汰策略
缓存模式★★★★★分布式锁
集群高可用★★★★☆架构设计

🏗️ 数据结构与底层编码

5 种基础类型 + 高级类型的使用场景;ziplist/listpack/skiplist 等底层编码切换原理;跳表为什么比红黑树更适合 Redis。

💾 持久化机制

RDB 快照 vs AOF 日志的核心区别;bgsave 的 fork + COW 原理;混合持久化的数据格式与恢复速度优势。

🧠 内存管理与淘汰

过期键的惰性删除 + 定期删除双策略;8 种淘汰策略选型;近似 LRU 与 LFU 的实现原理与代价。

⚡ 原子性与缓存模式

分布式锁的实现与 RedLock 争议;缓存穿透/击穿/雪崩三大经典问题;缓存与数据库双写一致性方案。

🌐 集群架构与高可用

主从复制与 PSYNC2 协议;哨兵选主机制;Cluster 的 16384 slot 分片设计;脑裂问题与防御策略。


专题初级中级高级代表问题
数据结构⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐跳表为什么不用红黑树?
持久化⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐bgsave 期间主进程还能写数据吗?
内存管理⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐近似 LRU 的采样原理?
缓存模式⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐分布式锁如何防止误删?
集群高可用⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Redis 脑裂如何处理?

MySQL(磁盘) Redis(内存)
──────────── ────────────
读延迟:1~10ms vs 读延迟:0.1ms
QPS上限:~数千 vs QPS上限:10万+
随机IO:贵 vs 内存访问:廉

Redis 是现代高并发架构的标配缓存层,几乎所有中大型系统都用。面试官考 Redis,本质是在考:

  1. 工程素养:会不会用、用对没有(数据类型选型、TTL 设置)
  2. 原理理解:知不知道为什么这么快(单线程、内存、IO 多路复用)
  3. 问题意识:用 Redis 会带来哪些新问题(一致性、持久化、脑裂)
  4. 架构能力:在高并发场景下如何组合使用 Redis(多级缓存、分布式锁)

单线程模型(命令执行)
避免了锁竞争和线程切换开销
内存存储
纳秒级内存访问 vs 毫秒级磁盘 IO
IO 多路复用(epoll)
单线程处理数万并发连接
高效数据结构
ziplist/skiplist/SDS 针对内存和访问模式专门优化

⚠️ 注意:Redis 6.0 引入了 IO 多线程(网络读写多线程化),但命令执行仍是单线程。面试中要区分「网络 IO 线程」和「命令执行线程」。


第1天 数据结构与底层编码 → 高频,先打基础
第2天 持久化机制 → 原理深,要理解 COW
第3天 内存管理与淘汰 → LRU/LFU 实现是亮点
第4天 缓存模式与分布式锁 → 最高频,要会设计
第5天 集群架构与高可用 → 架构题必备