外观
Redis
知识脉络
Redis
├── 数据结构
│ ├── String/List/Hash/Set/ZSet
│ ├── 底层实现(SDS/ziplist/quicklist/skiplist)
│ └── 各类型应用场景
├── 缓存问题
│ ├── 缓存穿透(布隆过滤器/空值缓存)
│ ├── 缓存击穿(互斥锁/永不过期)
│ ├── 缓存雪崩(随机过期/多级缓存)
│ └── 缓存一致性(延迟双删/Canal)
├── 持久化
│ ├── RDB(快照/fork/COW)
│ ├── AOF(追加/重写)
│ └── 混合持久化
├── 高可用
│ ├── 主从复制
│ ├── Sentinel 哨兵
│ └── Cluster 集群(槽分配/gossip)
├── 分布式锁
│ ├── SETNX + 过期时间
│ ├── Redisson 实现
│ └── RedLock 争议
├── 内存管理
│ ├── 过期策略(惰性+定期)
│ ├── 淘汰策略(LRU/LFU/随机/TTL)
│ └── 内存碎片
└── 高级特性
├── Pipeline 批量操作
├── Lua 脚本原子性
├── 发布订阅
└── Stream 消息知识点清单
| # | 题目 | 频率 | 难度 | 状态 |
|---|---|---|---|---|
| 1 | Redis数据结构与底层实现 | 极高 | 进阶 | todo |
| 2 | 缓存穿透-击穿-雪崩 | 极高 | 进阶 | todo |
| 3 | 缓存与数据库一致性 | 极高 | 困难 | todo |
| 4 | Redis分布式锁 | 极高 | 困难 | todo |
| 5 | Redis持久化RDB与AOF | 极高 | 进阶 | todo |
| 6 | Redis过期与淘汰策略 | 极高 | 进阶 | todo |
| 7 | Redis集群方案 | 高 | 困难 | todo |
| 8 | Redis主从复制 | 高 | 进阶 | todo |
| 9 | Redis哨兵机制 | 高 | 进阶 | todo |
| 10 | 跳表原理(ZSet底层) | 高 | 困难 | todo |
| 11 | Redis单线程为什么快 | 极高 | 基础 | todo |
| 12 | Redis事务与Lua脚本 | 中 | 进阶 | todo |
| 13 | 大Key问题与解决 | 高 | 进阶 | todo |
| 14 | 热Key问题与解决 | 高 | 进阶 | todo |
| 15 | [Redis Pipeline](/topics/redis/Redis Pipeline) | 中 | 基础 | todo |
| 16 | 布隆过滤器原理 | 高 | 进阶 | todo |
| 17 | Redisson分布式锁实现 | 高 | 困难 | todo |
| 18 | Redis内存碎片 | 中 | 进阶 | todo |
| 19 | Redis-Cluster槽分配 | 中 | 困难 | todo |
| 20 | 延迟双删方案 | 高 | 进阶 | todo |
| 21 | Redis应用场景总结 | 高 | 基础 | todo |
| 22 | Redis与Memcached对比 | 中 | 基础 | todo |
口诀速记
- 缓存三件套: "穿(布隆/空值)击(互斥/不过期)雪(随机/多级)"
- 淘汰策略: "LRU/LFU/TTL/Random × volatile/allkeys = 8种"
- 持久化: "RDB快全大,AOF慢增安,混合两者优"
- 单线程快: "内存+IO多路复用+避免切换"
跨域关联
- RDB fork → 操作系统fork与COW(操作系统)
- 分布式锁 → 分布式锁方案对比(分布式系统)
- 缓存一致性 → Canal数据同步(消息队列)
- IO多路复用 → epoll原理(操作系统)