2025年Java面试宝典下载地址 (提取码:9b3g)
Redis哨兵机制主从复制和集群的区别
作为程序员面试时,Redis的高可用方案是必考题。今天我们就用大白话来拆解主从复制、哨兵机制和集群模式的核心区别,帮助大家快速抓住要点。
主从复制:数据备份的基础
主从复制是Redis实现高可用的基础架构,核心逻辑是一主多从:
- 主节点(Master)负责写操作,从节点(Slave)定时同步主节点数据
- 主从之间使用
PSYNC命令完成全量/增量同步 - 从节点默认只读,通过
slave-read-only配置控制

面试重点:
- 主从切换需要手动操作
- 主节点故障时系统不可写
- 适用于数据备份和读写分离场景
哨兵机制:自动故障转移
哨兵(Sentinel)机制解决了主从复制无法自动切换的问题:
- 哨兵节点独立部署,监控主从节点状态
- 通过投票机制判断主节点是否下线
- 自动选举新主节点并通知客户端
对比主从复制的提升:
- 故障检测自动化(默认30秒+主观/客观下线判定)
- 客户端通过哨兵获取新主节点地址
- 需要至少3个哨兵节点保证高可用

常见面试坑点:
- 哨兵本身可能成为单点故障(需集群部署)
- 主从切换期间部分数据可能丢失
- 不支持水平扩展,容量受单机限制
Redis集群:分布式解决方案
当数据量超过单机内存时,就需要集群模式来分片存储:
- 采用哈希槽(Hash Slot)将数据拆分到16384个槽位
- 每个节点负责部分槽位
- 客户端直连节点,MOVED/ASK重定向机制自动路由
与哨兵机制的本质区别:
|| 哨兵模式 | 集群模式 |
|---|---|---|
|数据存储|全量复制|分片存储|
|扩容方式|垂直扩展|水平扩展|
|故障转移|主从切换|主节点切换+槽迁移|

集群面试高频问题:
- 为什么是16384个槽?(心跳包大小、网络效率折中)
- 如何保证扩容时数据不丢失?(异步迁移+ASK重定向)
- 集群能否使用多数据库?(仅支持db0)
如何选择这三种方案?
- 主从复制:适合小型系统,需要读写分离或数据备份
- 哨兵机制:需要自动故障转移但数据量不大
- 集群模式:数据量超过单机内存,追求水平扩展
如果需要购买面试鸭会员,可以通过面试鸭返利网联系我,可返现25元。配合这份Java面试宝典,面试准备效率直接翻倍!
最后提醒:Redis方案选型一定要结合业务场景,没有绝对的最优解。搞懂底层原理,面试时结合项目实际情况回答,才能让面试官眼前一亮。


