Redis 知识体系概览
问题
Redis 是什么?为什么这么快?面试中 Redis 的核心知识点有哪些?
答案
一、Redis 定位
Redis(Remote Dictionary Server)是一个 基于内存 的高性能键值数据库,支持丰富的数据结构。
| 特性 | 说明 |
|---|---|
| 内存存储 | 所有数据在内存中,读写极快 |
| 丰富数据结构 | String、Hash、List、Set、ZSet + 特殊类型 |
| 持久化 | RDB 快照 + AOF 追加日志 |
| 高可用 | 主从复制、哨兵、Cluster |
| 单线程模型 | 避免锁竞争,命令执行串行化 |
| 原子操作 | 单命令天然原子,支持 Lua 脚本 |
二、Redis 为什么这么快?
| 原因 | 说明 |
|---|---|
| 纯内存操作 | 内存访问 ns 级,磁盘 ms 级,快 10 万倍 |
| 单线程无锁 | 无上下文切换,无锁竞争 |
| IO 多路复用 | epoll/kqueue 处理高并发连接 |
| 高效数据结构 | SDS、跳表、压缩列表、整数集合 |
| 简单协议 | RESP 协议,解析简单 |
单线程?多线程?
- Redis 6.0 之前:完全单线程
- Redis 6.0+:网络 IO 多线程,命令执行仍然单线程
- 所以说 Redis 是「单线程」指的是命令执行是单线程的
三、知识体系
四、面试重点分布
| 主题 | 频率 | 核心知识点 |
|---|---|---|
| 数据结构 | ⭐⭐⭐⭐⭐ | 5 种类型 + 底层编码 + 应用场景 |
| 缓存问题 | ⭐⭐⭐⭐⭐ | 穿透、击穿、雪崩 |
| 持久化 | ⭐⭐⭐⭐ | RDB vs AOF |
| 分布式锁 | ⭐⭐⭐⭐ | SETNX、Redisson |
| 集群 | ⭐⭐⭐⭐ | 主从、哨兵、Cluster |
| 内存管理 | ⭐⭐⭐ | 淘汰策略、过期删除 |
| 应用场景 | ⭐⭐⭐ | 排行榜、限流、延时队列 |
| 性能优化 | ⭐⭐⭐ | Pipeline、大 Key、慢查询 |