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面试核心体系:原理、高可用、实战与特性分析