Redis面试 实战贴 后面持续更新链接
面试问题列表:
 Redis支持哪些数据类型?各适用于什么场景?
Redis为什么采用单线程模型?优势与瓶颈是什么?
RDB和AOF持久化的区别?如何选择?混合持久化如何实现?
Redis缓存穿透、雪崩、击穿的解决方案?
如何用Redis实现分布式锁?RedLock算法的核心思想?Redisson的看门狗机制原理?
Redis内存淘汰策略有哪些?
Redis的Pipeline和Lua脚本适用场景是什么?使用时需要注意什么?
Redis的过期键删除策略?
如何利用Redis实现延迟队列?
Redis的发布订阅模型有哪些缺点?
Redis集群主从复制的流程是怎样的?
Redis Sentinel如何实现高可用?
什么是脑裂问题?如何避免?
Redis Cluster的数据分片原理?为什么Redis Cluster不支持跨节点事务?Redis Cluster模式下如何实现跨节点事务?
集群如何扩容?数据迁移过程?
集群模式下,批量操作(如MSET)需要注意什么?
Codis与Redis Cluster的优缺点对比?Redis Cluster节点间通信协议?
Redis集群的Slot分配机制是什么?如何解决数据倾斜?
Redis的Hot Key自动发现与处理方案?
Redis大Key(Big Key)的优化策略?
Redis内存碎片率高的原因及解决方案?
Redis 6.0多线程模型如何工作?
如何设计一个二级缓存(Redis+Caffeine)架构?
Redis架构图
# Redis五大架构模式详解(图示+场景)## 1. 单机模式
```asciidoc
+-----------------+
| Redis单机实例    |
| (全量数据存储)    |
+-----------------+
特点:
 ✅ 部署简单
 ✅ 数据全内存操作
 ❌ 无高可用保障
 ❌ 容量受单机限制
适用场景:开发测试环境
2. 主从复制架构
       +----------+        写请求| Master   | <───────┐+----------+         ││               │▼ 数据同步       │
+----------+  +----------+   │
| Slave1   |  | Slave2   | ←─┘ 读请求
+----------+  +----------+
核心机制:
 🔹 异步数据复制
 🔹 读写分离(写Master→读Slave)
 🔹 从节点可水平扩展
适用场景:读多写少业务
3. 哨兵模式(Sentinel)
        +--------------+| Sentinel集群 |+------+-------+│监控
+--------------+--------------+
| Master节点                  |
+--------------+--------------+│ 故障转移
+--------------+--------------+
| 新Master节点(原Slave提升)  |
+-----------------------------+
核心能力:
 🚨 自动故障检测与转移
 📊 集群状态实时监控
 🔀 客户端自动发现新Master
适用场景:需要高可用保障的生产系统
4. Cluster集群模式
+--------+    +--------+    +--------+
| 分片1   | ←→ | 分片2   | ←→ | 分片3   |
| (16384槽)|    | (16384槽)|    | (16384槽)|
+---+-----+    +---+-----+    +---+-----+│              │              │▼              ▼              ▼
+---+-----+    +---+-----+    +---+-----+
| 副本节点 |    | 副本节点 |    | 副本节点 |
+--------+    +--------+    +--------+
核心特性:
 🔧 数据自动分片(hash slot)
 🌐 节点间Gossip协议通信
 ⚡ 支持水平扩展
适用场景:大数据量、高并发场景
5. 代理模式(Codis/Twemproxy)
+-----------------+
| 代理层           |
| (路由/负载均衡)   |
+-----+-----+-----+|     |     |
+-----+ +-----+ +-----+
| Redis组1 | Redis组2 | Redis组3
+---------+ +---------+ +---------+
优势:
 🛡️ 客户端无感知扩容
 📡 支持多语言客户端
 🔀 灵活的路由策略
适用场景:已有Redis集群的平滑迁移
架构选型指南
| 场景需求 | 推荐架构 | 
|---|---|
| 开发/测试 | 单机模式 | 
| 读多写少 | 主从复制 | 
| 7*24高可用 | 哨兵模式 | 
| 大数据量存储 | Cluster集群 | 
| 旧集群迁移 | 代理模式 | 
