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架构图

markdown 复制代码
# Redis五大架构模式详解(图示+场景)

## 1. 单机模式
```asciidoc
+-----------------+
| Redis单机实例    |
| (全量数据存储)    |
+-----------------+

特点

✅ 部署简单

✅ 数据全内存操作

❌ 无高可用保障

❌ 容量受单机限制

适用场景:开发测试环境


2. 主从复制架构

asciidoc 复制代码
       +----------+        写请求
       | Master   | <───────┐
       +----------+         │
            │               │
            ▼ 数据同步       │
+----------+  +----------+   │
| Slave1   |  | Slave2   | ←─┘ 读请求
+----------+  +----------+

核心机制

🔹 异步数据复制

🔹 读写分离(写Master→读Slave)

🔹 从节点可水平扩展

适用场景:读多写少业务


3. 哨兵模式(Sentinel)

asciidoc 复制代码
        +--------------+
        | Sentinel集群 |
        +------+-------+
               │监控
+--------------+--------------+
| Master节点                  |
+--------------+--------------+
       │ 故障转移
+--------------+--------------+
| 新Master节点(原Slave提升)  |
+-----------------------------+

核心能力

🚨 自动故障检测与转移

📊 集群状态实时监控

🔀 客户端自动发现新Master

适用场景:需要高可用保障的生产系统


4. Cluster集群模式

asciidoc 复制代码
+--------+    +--------+    +--------+
| 分片1   | ←→ | 分片2   | ←→ | 分片3   |
| (16384槽)|    | (16384槽)|    | (16384槽)|
+---+-----+    +---+-----+    +---+-----+
    │              │              │
    ▼              ▼              ▼
+---+-----+    +---+-----+    +---+-----+
| 副本节点 |    | 副本节点 |    | 副本节点 |
+--------+    +--------+    +--------+

核心特性

🔧 数据自动分片(hash slot)

🌐 节点间Gossip协议通信

⚡ 支持水平扩展

适用场景:大数据量、高并发场景


5. 代理模式(Codis/Twemproxy)

asciidoc 复制代码
+-----------------+
| 代理层           |
| (路由/负载均衡)   |
+-----+-----+-----+
      |     |     |
+-----+ +-----+ +-----+
| Redis组1 | Redis组2 | Redis组3
+---------+ +---------+ +---------+

优势

🛡️ 客户端无感知扩容

📡 支持多语言客户端

🔀 灵活的路由策略

适用场景:已有Redis集群的平滑迁移


架构选型指南

场景需求 推荐架构
开发/测试 单机模式
读多写少 主从复制
7*24高可用 哨兵模式
大数据量存储 Cluster集群
旧集群迁移 代理模式
相关推荐
BU摆烂会噶1 分钟前
【LangGraph】持久化实现的三大能力——人机交互
数据库·人工智能·python·langchain·人机交互
jefl jxak18 分钟前
mysql用户名怎么看
数据库·mysql
逻辑驱动的ken21 分钟前
Java高频面试考点场景题20
java·开发语言·深度学习·面试·职场和发展
unDl IONA24 分钟前
mysql之如何获知版本
数据库·mysql
Wect27 分钟前
深度剖析浏览器跨域问题
前端·面试·浏览器
俺不要写代码35 分钟前
数据库:约束
数据库·mysql
KmSH8umpK41 分钟前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第四篇
数据库·redis·分布式
KmSH8umpK1 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第五篇
数据库·redis·分布式
lilihuigz1 小时前
企业培训网站搭建指南:5步在WordPress上创建品牌学院
数据库
WL_Aurora1 小时前
MySQL 5 卸载到 MySQL 8 安装完整指南(不踩坑版)
数据库·mysql