
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--version2. 下载、编译、安装 Redismkdir-p/opt/software/rediscd/opt/software/rediswgethttps://download.redis.io/redis-stable.tar.gztar-xzfredis-stable.tar.gzcdredis-stablemakeinstallll /usr/local/bin3. Redis 核心工具说明redis-serverRedis 服务启动核心程序redis-cliRedis 客户端连接工具redis-sentinel哨兵模式启动程序redis-benchmarkRedis 性能压测工具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 yes2. 服务启动与连接测试redis-server redis.conf redis-cli127.0.0.1:6379auth123456127.0.0.1:6379setname redis7127.0.0.1:6379get name redis-clishutdownquit3. 架构优缺点与适用场景优点部署极简、零运维成本、性能损耗极低缺点单点故障风险极高服务宕机即不可用、数据丢失不支持读写分离、无法横向扩容适用场景本地开发调试、小型测试项目、低优先级临时缓存业务四、架构二Redis 主从复制主从复制是 Redis 高可用的基础架构核心是一主多从、单向数据同步。主节点负责处理写请求从节点异步同步主节点数据、承担读请求实现数据备份与读写分离有效缓解单机读压力。1. 架构部署规划主节点Master192.168.10.1:6379从节点Slave1192.168.10.2:6379从节点Slave2192.168.10.3:63792. 部署配置主节点无需额外配置沿用单机配置即可两台从节点需单独配置主节点关联信息。编辑从节点 redis.conf追加以下配置replicaof 192.168.10.1 6379 masterauth 123456 replica-read-only yes3. 启动与状态验证启动顺序先启动主节点再启动所有从节点redis-server redis.conf redis-cli-a123456127.0.0.1:6379info replication正常输出结果role:master connected_slaves:2 slave0:ip192.168.10.2,port6379,stateonline slave1:ip192.168.10.3,port6379,stateonline4. 功能测试主节点写入数据所有从节点可正常读取从节点默认只读执行写入操作会直接报错保障数据一致性5. 架构优缺点优点实现数据热备份避免数据丢失读写分离大幅提升读请求并发能力是哨兵、集群架构的基础缺点无自动故障转移主节点宕机需人工切换主从写请求仍集中在单主节点无法扩容异步复制存在数据延迟极端场景可能丢数据五、架构三Redis 哨兵模式哨兵模式基于主从复制架构升级通过独立的哨兵集群实现节点监控、故障自动判定、主从自动切换、客户端配置推送彻底解决主从架构人工运维的痛点是中小型业务主流高可用方案。1. 核心原理监控哨兵进程定时通过 PING 指令检测主、从节点存活状态主观下线单个哨兵判定主节点超时无响应标记为主观下线客观下线超过半数哨兵判定主节点故障正式标记为客观下线故障转移自动选举最优从节点升级为新主其余从节点自动关联新主2. 哨兵集群规范生产环境硬性要求哨兵节点数量必须为奇数3/5个避免票数平分无法选举本文采用 3 台服务器各部署 1 个哨兵的标准架构。3. 哨兵配置三台机器统一配置编辑哨兵配置文件 sentinel.confvimsentinel.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 1234564. 启动与状态验证redis-sentinel sentinel.conf redis-cli-p26379127.0.0.1:26379info sentinel正常输出3个哨兵正常在线主从节点状态健康5. 架构优缺点优点实现主节点故障全自动转移无需人工干预保障服务高可用保留读写分离优势运维成本低缺点写请求依旧是单点瓶颈无法横向扩容异步复制存在极小概率数据丢失适用场景中小型业务、读多写少、需要自动容灾无需海量数据分片的场景六、架构四Redis Cluster 三主三从集群Redis Cluster 是 Redis 官方分布式集群方案彻底解决单机内存限制、写请求单点瓶颈问题通过哈希槽分片 多主多从架构实现数据分布式存储、读写横向扩容、节点故障自动转移是大型互联网项目的标准生产架构。1. 核心原理哈希槽分片集群共 16384 个哈希槽0-16383Key 通过 CRC16 算法取余分配至对应主节点三主三从架构3个主节点分摊所有数据槽位每个主节点搭配1个从节点做数据备份跨机器容灾主从节点交叉部署单台服务器整机宕机不会导致分片丢失2. 集群部署规划3台服务器每台部署2个Redis实例6379/6380主从交叉错开192.168.10.16379主、6380从192.168.10.26379主、6380从192.168.10.36379主、6380从3. 集群配置文件部署所有服务器统一创建集群目录编写两套端口配置文件mkdir-p/opt/software/redis/redis-stable/clustermkdir-p/opt/software/redis/clustervim./cluster/redis_6379.confvim./cluster/redis_6380.conf6379 配置文件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.rdb6380 配置文件仅修改端口与文件名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.rdb4. 启动所有集群实例三台机器全部执行启动6个Redis节点redis-server ./cluster/redis_6379.conf redis-server ./cluster/redis_6380.confpsaux|grepredis5. 一键构建三主三从集群任意一台机器执行集群创建命令--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 user7. 集群故障转移测试关闭任意主节点集群自动触发故障转移对应从节点升级为主节点重启故障节点自动降级为从节点重新加入集群全程集群服务不中断实现无感知容灾8. 架构优缺点优点数据分片突破单机内存限制多主节点实现读写横向扩容自带全自动故障转移高可用能力拉满支持海量数据、高并发业务缺点部署与运维复杂度高不支持跨槽位多 Key 事务批量操作存在槽位限制适用场景大型分布式项目、海量缓存数据、高并发读写、需要横向扩容的生产业务八、高频实操命令汇总1. 服务启停命令redis-server redis.conf# 启动哨兵redis-sentinel sentinel.conf redis-clishutdown# 关闭哨兵redis-cli-p26379shutdown2. 状态查看命令redis-cli info replication redis-cli-p26379info sentinel# 查看集群整体信息redis-cli cluster info# 查看集群节点详情redis-cli cluster nodes# 实时监控日志tail-fredis.logtail-fsentinel.log3. 客户端连接命令# 带密码连接单机redis-cli-a123456redis-cli-c# 连接哨兵redis-cli-p26379九、生产环境核心注意事项哨兵集群节点数量必须为奇数禁止2台机器部署哨兵避免投票失效Redis Cluster 主从节点必须跨机器部署杜绝同机主从防止整机宕机导致分片丢失生产环境务必开启 AOF 持久化最大限度降低数据丢失风险哨兵模式无法实现写扩容海量高并发写业务直接选用 Cluster 集群主从复制为异步同步存在短暂数据延迟强一致性业务需额外适配版本升级后部分配置会重置部署完成需备份配置模板避免重复配置测试环境可关闭防火墙生产环境需精准开放 6379、26379 及集群总线端口