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

相关推荐
dyyshb2 小时前
PostgreSQL 终极兜底方案
数据库·postgresql
他们叫我技术总监3 小时前
零依赖!FineReport11 快速对接 TDengine 数据库:从驱动部署到报表实现
大数据·数据库·ai·tdengine
TDengine (老段)3 小时前
TDengine IDMP 可视化 —— 定时报告
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
曹牧3 小时前
Oracle:
数据库·oracle
kobel283 小时前
Linux x86快速部署openGauss3.1.1指南
数据库
一个有温度的技术博主3 小时前
Lua语法详解:从变量声明到循环遍历的避坑指南
redis·缓存·lua
草莓熊Lotso3 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
supericeice3 小时前
创邻科技 Galaxybase Graph Intelligence 图智能平台:一站式可视化图数据存储、图计算与图挖掘平台
数据库·科技
heimeiyingwang3 小时前
【架构实战】NewSQL数据库对比(TiDB/CockroachDB)
数据库·架构·tidb