Redis面试核心体系:原理、高可用、实战与特性分析
该思维导图涵盖了Redis的核心原理、高可用方案、实战场景与优化、常见面试题、高级特性及辅助工具等多个方面。重点介绍了Redis的单线程架构、数据结构、内存管理、持久化机制、主从复制、哨兵模式、集群模式等技术要点,以及缓存设计、分布式锁和性能优化方法。同时,还提到了Redis 6及7的新特性和监控、压测工具。
源码
# Redis面试核心体系
## 一、Redis核心原理
### 1.1 线程模型
- 单线程架构
- 网络IO
- 命令执行
- 多路复用
- epoll
- kqueue
- Redis 6.0多线程IO
- 非命令执行线程 ⭐️
### 1.2 数据结构与底层实现
- String
- SDS
- Hash
- ziplist
- hashtable
- List
- quicklist
- Set
- intset
- hashtable
- Zset
- ziplist
- skiplist
- 其他
- HyperLogLog
- Bitmap
- Stream
### 1.3 内存管理
- 内存淘汰策略
- 8种策略 ⭐️
- 过期键删除机制
- 惰性删除
- 定期删除
- 内存碎片处理
- jemalloc
- 碎片整理
### 1.4 持久化机制
- RDB
- SAVE/BGSAVE
- 优缺点
- 快照恢复快
- 数据丢失风险
- AOF
- appendfsync配置
- always
- everysec
- no
- 重写机制
- BGREWRITEAOF
- 混合持久化
- Redis 4.0+ ⭐️
## 二、高可用方案
### 2.1 主从复制
- 全量同步
- SYNC流程
- 增量同步
- PSYNC条件
- 复制积压缓冲区
- repl_backlog
- 级联复制
- 树状拓扑
### 2.2 哨兵模式
- 核心功能
- 监控
- 通知
- 自动故障转移
- 主观下线
- SDOWN
- 客观下线
- ODOWN
- 选举新主节点规则
- 优先级
- 复制偏移量
- 脑裂问题
- 解决方案
### 2.3 集群模式
- 数据分片
- 16384 slots
- Gossip协议
- 通信
- 节点扩缩容
- resharding
- 请求重定向
- MOVED
- ASK
## 三、实战场景与优化
### 3.1 缓存设计
- 缓存穿透
- 布隆过滤器
- 空值缓存 ⭐️
- 缓存雪崩
- 随机过期时间
- 多级缓存
- 缓存击穿
- 互斥锁
- 永不过期 ⭐️
### 3.2 分布式锁
- SETNX
- EXPIRE
- 原子性问题
- RedLock算法
- 多节点锁 ⭐️
- 锁续期
- WatchDog机制
### 3.3 性能优化
- Pipeline
- 批量操作
- 大Key拆分
- 分片
- 压缩 ⭐️
- HotKey处理
- 本地缓存
- 分片打散
## 四、高频面试题
### 4.1 原理类
- Q1: Redis为什么快?
- 内存操作
- IO多路复用 ⭐️
- Q2: AOF重写期间新命令如何处理?
- 双写缓冲
- Q3: Cluster如何保证数据一致性?
- 异步复制
- 最终一致
### 4.2 场景类
- Q1: 如何实现延迟队列?
- ZSET时间戳
- Q2: 如何保证数据库与缓存一致性?
- 双删策略
- 监听binlog ⭐️
- Q3: 如何设计秒杀系统?
- 库存预扣
- 限流
- 熔断
### 4.3 故障处理
- Q1: 主从数据不一致如何处理?
- 监控偏移量
- 手动同步
- Q2: 集群节点宕机如何恢复?
- 自动故障转移
- 手动修复
## 五、高级特性
### 5.1 Redis
图片
![Redis面试核心体系:原理、高可用、实战与特性分析](http://dl.min2k.com/diagrams/7bcb5e0d3a315b52f6db45e51920ad0a.webp)