Redis安装指南:单机、主从、哨兵、集群模式详解
2026/6/24 2:21:09 网站建设 项目流程

Redis系列文章超链接:

《Redis安装指南:单机、主从、哨兵、集群模式详解》​​​​​​​

《Redis基础结构的概念以及应用场景》

《Redis数据安全性详解–RDB、AOF持久化技术》

一、前言

Redis 是一款高性能、基于内存的键值对数据库,凭借超高吞吐、低延迟的特性,广泛应用于项目缓存、分布式锁、限时业务、消息队列、热点数据存储等场景。

随着业务体量增长,Redis 的部署架构需要逐级升级,从最简单的单机部署,逐步迭代至主从复制、哨兵高可用、Cluster 分布式集群。本文基于CentOS Linux 环境、Redis7.2.5 版本,一站式讲解四种主流架构的核心原理、详细部署步骤、状态验证、故障模拟,所有命令可直接落地实操,适合开发、运维人员学习与生产部署参考。

环境统一说明

  • 操作系统:CentOS 7/8

  • 软件版本:Redis 7.2.5

  • 编译依赖:GCC

  • 集群机器规划:3台服务器(192.168.10.1、192.168.10.2、192.168.10.3)

二、通用前置环境准备(所有架构共用)

Redis 基于 C 语言开发,安装前必须配置 GCC 编译环境,所有服务器统一执行以下操作。

1. 安装 GCC 依赖

yuminstallgcc-ygcc--version

2. 下载、编译、安装 Redis

mkdir-p/opt/software/rediscd/opt/software/rediswgethttps://download.redis.io/redis-stable.tar.gztar-xzfredis-stable.tar.gzcdredis-stablemakeinstallll /usr/local/bin

3. Redis 核心工具说明

  • redis-server:Redis 服务启动核心程序

  • redis-cli:Redis 客户端连接工具

  • redis-sentinel:哨兵模式启动程序

  • redis-benchmark:Redis 性能压测工具

  • redis-check-aof/redis-check-rdb:持久化文件修复工具

三、架构一:Redis 单机部署

单机部署是 Redis 最基础的部署模式,部署简单、资源占用低,仅适用于本地开发、功能测试、小型临时业务,不支持高可用、无数据备份、存在单点故障

1. 核心配置修改

编辑 Redis 核心配置文件,开启后台运行、远程访问、日志记录等核心能力:

vimredis.conf

修改以下关键配置:

bind * -::* protected-mode no daemonize yes logfile /opt/software/redis/redis-stable/redis.log dir /opt/software/redis requirepass 123456 appendonly yes

2. 服务启动与连接测试

redis-server redis.conf redis-cli127.0.0.1:6379>auth123456127.0.0.1:6379>setname redis7127.0.0.1:6379>get name redis-clishutdownquit

3. 架构优缺点与适用场景

优点:部署极简、零运维成本、性能损耗极低

缺点:单点故障风险极高,服务宕机即不可用、数据丢失;不支持读写分离、无法横向扩容

适用场景:本地开发调试、小型测试项目、低优先级临时缓存业务

四、架构二:Redis 主从复制

主从复制是 Redis 高可用的基础架构,核心是一主多从、单向数据同步。主节点负责处理写请求,从节点异步同步主节点数据、承担读请求,实现数据备份与读写分离,有效缓解单机读压力。

1. 架构部署规划

  • 主节点(Master):192.168.10.1:6379

  • 从节点(Slave1):192.168.10.2:6379

  • 从节点(Slave2):192.168.10.3:6379

2. 部署配置

主节点无需额外配置,沿用单机配置即可;两台从节点需单独配置主节点关联信息

编辑从节点 redis.conf,追加以下配置:

replicaof 192.168.10.1 6379 masterauth 123456 replica-read-only yes

3. 启动与状态验证

启动顺序:先启动主节点,再启动所有从节点

redis-server redis.conf redis-cli-a123456127.0.0.1:6379>info replication

正常输出结果:

role:master connected_slaves:2 slave0:ip=192.168.10.2,port=6379,state=online slave1:ip=192.168.10.3,port=6379,state=online

4. 功能测试

  • 主节点写入数据,所有从节点可正常读取

  • 从节点默认只读,执行写入操作会直接报错,保障数据一致性

5. 架构优缺点

优点:实现数据热备份,避免数据丢失;读写分离,大幅提升读请求并发能力;是哨兵、集群架构的基础

缺点:无自动故障转移,主节点宕机需人工切换主从;写请求仍集中在单主节点,无法扩容;异步复制存在数据延迟,极端场景可能丢数据

五、架构三:Redis 哨兵模式

哨兵模式基于主从复制架构升级,通过独立的哨兵集群实现节点监控、故障自动判定、主从自动切换、客户端配置推送,彻底解决主从架构人工运维的痛点,是中小型业务主流高可用方案。

1. 核心原理

  • 监控:哨兵进程定时通过 PING 指令检测主、从节点存活状态

  • 主观下线:单个哨兵判定主节点超时无响应,标记为主观下线

  • 客观下线:超过半数哨兵判定主节点故障,正式标记为客观下线

  • 故障转移:自动选举最优从节点升级为新主,其余从节点自动关联新主

2. 哨兵集群规范

生产环境硬性要求:哨兵节点数量必须为奇数(3/5个),避免票数平分无法选举;本文采用 3 台服务器各部署 1 个哨兵的标准架构。

3. 哨兵配置(三台机器统一配置)

编辑哨兵配置文件 sentinel.conf:

vimsentinel.conf

核心配置如下:

protected-mode no port 26379 daemonize yes logfile /opt/software/redis/redis-stable/sentinel.log dir /opt/software/redis sentinel monitor mymaster 192.168.10.1 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 180000 sentinel auth-pass mymaster 123456

4. 启动与状态验证

redis-sentinel sentinel.conf redis-cli-p26379127.0.0.1:26379>info sentinel

正常输出:3个哨兵正常在线,主从节点状态健康

5. 架构优缺点

优点:实现主节点故障全自动转移,无需人工干预,保障服务高可用;保留读写分离优势,运维成本低

缺点:写请求依旧是单点瓶颈,无法横向扩容;异步复制存在极小概率数据丢失

适用场景:中小型业务、读多写少、需要自动容灾,无需海量数据分片的场景

六、架构四:Redis Cluster 三主三从集群

Redis Cluster 是 Redis 官方分布式集群方案,彻底解决单机内存限制、写请求单点瓶颈问题,通过哈希槽分片 + 多主多从架构,实现数据分布式存储、读写横向扩容、节点故障自动转移,是大型互联网项目的标准生产架构。

1. 核心原理

  • 哈希槽分片:集群共 16384 个哈希槽(0-16383),Key 通过 CRC16 算法取余分配至对应主节点

  • 三主三从架构:3个主节点分摊所有数据槽位,每个主节点搭配1个从节点做数据备份

  • 跨机器容灾:主从节点交叉部署,单台服务器整机宕机不会导致分片丢失

2. 集群部署规划

3台服务器,每台部署2个Redis实例(6379/6380),主从交叉错开:

  • 192.168.10.1:6379(主)、6380(从)

  • 192.168.10.2:6379(主)、6380(从)

  • 192.168.10.3:6379(主)、6380(从)

3. 集群配置文件部署

所有服务器统一创建集群目录,编写两套端口配置文件:

mkdir-p/opt/software/redis/redis-stable/clustermkdir-p/opt/software/redis/clustervim./cluster/redis_6379.confvim./cluster/redis_6380.conf

6379 配置文件

bind * -::* daemonize yes protected-mode no cluster-enabled yes cluster-node-timeout 5000 dir "/opt/software/redis/cluster" appendonly yes port 6379 logfile "/opt/software/redis/redis-stable/cluster/redis6379.log" cluster-config-file nodes-6379.conf appendfilename "appendonly6379.aof" dbfilename "dump6379.rdb"

6380 配置文件(仅修改端口与文件名):

bind * -::* daemonize yes protected-mode no cluster-enabled yes cluster-node-timeout 5000 dir "/opt/software/redis/cluster" appendonly yes port 6380 logfile "/opt/software/redis/redis-stable/cluster/redis6380.log" cluster-config-file nodes-6380.conf appendfilename "appendonly6380.aof" dbfilename "dump6380.rdb"

4. 启动所有集群实例

三台机器全部执行,启动6个Redis节点:

redis-server ./cluster/redis_6379.conf redis-server ./cluster/redis_6380.confpsaux|grepredis

5. 一键构建三主三从集群

任意一台机器执行集群创建命令,--cluster-replicas 1表示每个主节点分配1个从节点:

redis-cli--clustercreate --cluster-replicas1\192.168.10.1:6379192.168.10.1:6380\192.168.10.2:6379192.168.10.2:6380\192.168.10.3:6379192.168.10.3:6380

出现确认提示输入yes,系统自动完成槽位分配、主从绑定。

6. 集群状态验证

redis-cli cluster info redis-cli cluster nodes redis-cli-csetuser zhangsan get user

7. 集群故障转移测试

  1. 关闭任意主节点,集群自动触发故障转移,对应从节点升级为主节点

  2. 重启故障节点,自动降级为从节点,重新加入集群

  3. 全程集群服务不中断,实现无感知容灾

8. 架构优缺点

优点:数据分片突破单机内存限制;多主节点实现读写横向扩容;自带全自动故障转移,高可用能力拉满;支持海量数据、高并发业务

缺点:部署与运维复杂度高;不支持跨槽位多 Key 事务;批量操作存在槽位限制

适用场景:大型分布式项目、海量缓存数据、高并发读写、需要横向扩容的生产业务

八、高频实操命令汇总

1. 服务启停命令

redis-server redis.conf# 启动哨兵redis-sentinel sentinel.conf redis-clishutdown# 关闭哨兵redis-cli-p26379shutdown

2. 状态查看命令

redis-cli info replication redis-cli-p26379info sentinel# 查看集群整体信息redis-cli cluster info# 查看集群节点详情redis-cli cluster nodes# 实时监控日志tail-fredis.logtail-fsentinel.log

3. 客户端连接命令

# 带密码连接单机redis-cli-a123456redis-cli-c# 连接哨兵redis-cli-p26379

九、生产环境核心注意事项

  • 哨兵集群节点数量必须为奇数,禁止2台机器部署哨兵,避免投票失效

  • Redis Cluster 主从节点必须跨机器部署,杜绝同机主从,防止整机宕机导致分片丢失

  • 生产环境务必开启 AOF 持久化,最大限度降低数据丢失风险

  • 哨兵模式无法实现写扩容,海量高并发写业务直接选用 Cluster 集群

  • 主从复制为异步同步,存在短暂数据延迟,强一致性业务需额外适配

  • 版本升级后部分配置会重置,部署完成需备份配置模板,避免重复配置

  • 测试环境可关闭防火墙,生产环境需精准开放 6379、26379 及集群总线端口

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询