系列导读:本篇将深入讲解 Redis 哨兵和集群,实现高可用和分布式存储。
文章目录
一、哨兵模式
1.1 哨兵架构
┌─────────────────────────────────────────┐
│ Sentinel 集群 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Sentinel1│ │Sentinel2│ │Sentinel3│ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
└─────────┼───────────┼───────────┼───────┘
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐
│ Master │ ──复制──► │ Slave │
└─────────┘ └─────────┘
哨兵监控主节点,自动故障转移
1.2 哨兵配置
conf
# sentinel.conf
port 26379
sentinel monitor mymaster 192.168.1.100 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel auth-pass mymaster password
1.3 启动哨兵
bash
redis-sentinel /etc/redis/sentinel.conf
1.4 哨兵命令
bash
# 查看主节点信息
SENTINEL master mymaster
# 查看从节点
SENTINEL replicas mymaster
# 查看哨兵列表
SENTINEL sentinels mymaster
# 获取当前主节点
SENTINEL get-master-addr-by-name mymaster
二、集群模式
2.1 集群架构
┌─────────────────────────────────────────────────────────────┐
│ Redis Cluster │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Master1 │ │ Master2 │ │ Master3 │ │
│ │ 0-5460 │ │5461-10922│ │10923-16383│ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │
│ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐ │
│ │ Slave1 │ │ Slave2 │ │ Slave3 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
数据分片存储在多个主节点
2.2 集群配置
conf
# redis.conf
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-require-full-coverage yes
2.3 创建集群
bash
# 创建集群(3主3从)
redis-cli --cluster create \
192.168.1.101:6379 \
192.168.1.102:6379 \
192.168.1.103:6379 \
192.168.1.104:6379 \
192.168.1.105:6379 \
192.168.1.106:6379 \
--cluster-replicas 1
2.4 集群命令
bash
# 查看集群信息
CLUSTER INFO
# 查看节点信息
CLUSTER NODES
# 查看槽位分配
CLUSTER SLOTS
三、架构对比
| 特性 | 主从复制 | 哨兵模式 | 集群模式 |
|---|---|---|---|
| 数据备份 | ✅ | ✅ | ✅ |
| 故障转移 | ❌ | ✅ | ✅ |
| 数据分片 | ❌ | ❌ | ✅ |
| 水平扩展 | ❌ | ❌ | ✅ |
| 配置复杂度 | 低 | 中 | 高 |
总结
✅ 哨兵模式 :监控、故障转移
✅ 集群模式 :数据分片、高可用
✅ 架构选择:根据业务需求选择
下篇预告 :Redis 从入门到精通(十四):内存管理与淘汰策略
作者 :刘~浪地球
系列 :Redis 从入门到精通(十三)
更新时间:2026-04-08