Redis 从入门到精通(十三):哨兵与集群

系列导读:本篇将深入讲解 Redis 哨兵和集群,实现高可用和分布式存储。


文章目录

    • 一、哨兵模式
      • [1.1 哨兵架构](#1.1 哨兵架构)
      • [1.2 哨兵配置](#1.2 哨兵配置)
      • [1.3 启动哨兵](#1.3 启动哨兵)
      • [1.4 哨兵命令](#1.4 哨兵命令)
    • 二、集群模式
      • [2.1 集群架构](#2.1 集群架构)
      • [2.2 集群配置](#2.2 集群配置)
      • [2.3 创建集群](#2.3 创建集群)
      • [2.4 集群命令](#2.4 集群命令)
    • 三、架构对比
    • 总结

一、哨兵模式

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

相关推荐
AIgorithmGEEK4 小时前
MySQL 索引全解(下):建、查、删实战与知识速查表
数据库·mysql·b+树·索引
行百里er5 小时前
Redis 完结篇——Redis 热点问题在 Spring Boot 项目中实战
redis·后端
唠点键盘之外的6 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨6 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
ly76896 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉6 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API10248 小时前
不会写复杂SQL怎么办?
数据库·sql
执笔为剑8 小时前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
geovindu8 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__8 小时前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧