分布式 Redis 系统构建稳定性的核心在于采用集群模式(如 Redis Cluster 或 Codis)结合主从复制与哨兵机制。部署时解决高可用性问题需确保至少一主多从架构,利用哨兵自动故障转移,或集群模式下的槽位分片与自动故障恢复。同时需配置数据持久化(RDB/AOF)防止数据丢失,并通过读写分离缓解单点压力。网络层面需保证节点间通信稳定,避免脑裂,运维上需监控节点状态并及时扩容,从而实现服务持续可用与数据可靠性保障。
教你用 3 台机器搞定一个 Redis 高可用架构
我们经常在业务中用其存储用户登陆态 (Session 存储),加速一些热数据的查询 (相比较 MySQL 而言,速度有数量级的提升),做简单的消息队列 (LPUSH 和 BRPOP)、订阅发布 (PUB/SUB) 系统等等。规模比较大的互联网公司,一般都会有专门的团队,将 Redis 存储以基础服务的形式提供给各个业务调用。最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。首先我们要定义一下对于 Redis 服务来说怎样才算是高可用,即在各种出现异常的情况下,依然可以正常提供服务;或者宽松一些,出现异常的情况下,只经过很短暂的时间即可恢复正常服务。某个节点服务器的某个进程突然 down 掉,例如某开发手残,把一台服务器的 redis-server 进程 kill 了。某台节点服务器 down 掉,相当于这个节点上所有进程都停了,例如某运维手残,把一个服务器的电源拔了;例如一些老旧机器出现硬件故障。任意两个节点服务器之间的通信中断了,例如某临时工手残,把用于两个机房通信的光缆挖断了。最终在 Keepalived 和 Redis Sentinel 之间做了个选择,选择了官方的解决方案 Redis Sentinel。Redis Sentinel 可以理解为一个监控 Redis Server 服务是否正常的进程,并且一旦检测到不正常,可以自动地将备份 (slave)Redis Server 启用,使得外部用户对 Redis 服务内部出现的异常无感知。点击这里获取全套 redis 面试题及答案。(撰于 2025 年 11 月 4 日)
Redis 集群部署指南:高可用与分布式实践
1. 原理与理论 Redis 集群通过分片 (Sharding) 实现数据分布式存储,核心机制包括:槽位分配 (Slot):数据被划分为 16384 个槽位,每个节点负责部分槽位。Gossip 协议:节点间通过 PING/PONG 消息交换集群状态。主从复制:每个主节点 (Master) 至少有一个从节点 (Slave),实现故障自动转移 (Failover)。重定向机制:客户端访问错误节点时,返回 MOVED 指令重定向到正确节点。2. 背景与目的 背景:单机 Redis 存在性能瓶颈 (内存/QPS 限制) 和单点故障风险。目的:实现数据水平拆分,支持海量数据存储。通过主从复制和故障转移保障高可用性。提升读写并发能力 (如三主集群理论 QPS 可达 30 万+)。3. 详细部署步骤 (手动操作) 环境准备:6 台 CentOS 7 服务器 (3 主 3 从),IP:172.16.1.131-136 关闭防火墙和 SELinux: systemctlstopfirewalld&&systemctl disable firewalld sed -i's/SELINUX=.*/SELINUX=disabled/g'/etc/selinux/config&&setenforce0 一键获取完整项目代码 步骤 1:安装 Redis 5.0.4 # 所有节点执行 cd/opt wget http://download.redis.io/releases/redis-5.0.4.tar.gz tar xzvf redis-5.0.4.tar.gz cd redis-5.0.4 make&&make install 一键获取完整项目代码 步骤 2:配置 Redis 服务 # 创建配置文件目录 mkdir -p/etc/redis/var/log/redis/var/lib/redis # 复制配置文件 cp/opt/redis-5.0.4/redis.conf/etc/redis/6379.conf 一键获取完整项目代码 步骤 3:修改关键配置 编辑/etc/redis/6379.conf: bind172.16.1.131127.0.0.1# 当前节点 IP(每台不同) port6379 daemonize yes pidfile/var/run/redis_6379.pid logfile/var/log/redis/redis.log dir/var/lib/redis cluster-enabled yes # 启用集群模式 cluster-node-timeout15000# 节点超时时间 cluster-config-file nodes.conf # 集群状态文件 一键获取完整项目代码(来自 2025 年 7 月 6 日的资料)
Redis 高可用性:如何让你的缓存一直在线,稳定运行?
🛠️1. Redis 主从复制:简单的高可用方案 1.1 主从复制工作原理 Redis 主从复制 (Master-Slave Replication) 是 Redis 实现高可用性最基础的方案之一。在这种架构中,你会有一个主节点 (Master) 和一个或多个从节点 (Slave)。主节点负责处理写操作和数据更新,而从节点则负责从主节点同步数据并进行只读操作。当主节点发生故障时,可以将某个从节点提升为主节点 (手动或自动),确保系统的持续可用。主从复制基本架构 主节点 (Master):处理所有的写操作 (如 SET、DEL 等命令)。从节点 (Slave):只处理读操作 (如 GET 命令),并定期从主节点同步数据。主从复制工作流程 (1) 初始同步 当从节点 (Slave) 首次启动并连接到主节点时,它需要将主节点的数据完全同步过来。这个过程称为“全量同步”。从节点连接主节点:从节点向主节点发起连接请求。主节点进行快照 (RDB):主节点执行 SAVE 或 BGSAVE 命令,将当前的内存数据 (RDB 快照) 保存到磁盘。从节点复制快照:主节点将保存的数据发送给从节点,从节点将数据写入本地数据库。建立同步通道:从节点在完成全量同步后,开始监听主节点的变更。 (2) 增量同步 从节点已经有了主节点的数据快照后,接下来的数据同步就是增量同步,只同步主节点上的变更数据。主节点记录变更操作:主节点每处理一个写操作 (如 SET、DEL),会将这个操作写入复制日志 (replication log) 中。主节点发送变更命令给从节点:主节点将增量变更命令发送到所有的从节点。从节点执行命令:从节点收到变更命令后,会在本地执行这些命令,保证数据的一致性。 (3) 断线恢复 如果从节点与主节点的连接丢失,Redis 会进行断线恢复:当从节点重新连接到主节点时,Redis 会判断是进行全量同步还是增量同步。如果从节点没有数据快照,它会进行全量同步;如果有数据快照,则会通过增量同步方式进行恢复。(消息于 2025 年 3 月 13 日发布)
【独家】史上最全 Redis 高可用技术解决方案大全
Redis 单副本 1Redis 单副本 Redis 单副本,采用单个 Redis 节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适用于数据可靠性要求不高的纯缓存业务场景。1、架构简单、部署方便 2、高性价比,当缓存使用时无需备用节点 (单实例可用性可以用 supervisor 或 crontab 保证),当然为了满足业务的高可用性,也可以牺牲一个备用节点,但同时刻只有一个实例对外提供服务。2、当缓存使用,进程重启后,数据丢失,即使有备用的节点解决高可用性,但是仍然不能解决缓存预热问题,因此不适用于数据可靠性要求高的业务。也可以考虑用 memcached 替代。Redis 多副本,采用主从 (replication) 部署结构,相较于单副本而言最大的特点就是主从实例间数据实时同步,并且提供数据持久化和备份策略。主从实例部署在不同的物理服务器上,根据公司的基础环境配置,可以实现同时对外提供服务和读写分离策略。另一方面,开启数据持久化功能和配置合理的备份策略,能有效的解决数据误操作和数据异常丢失的问题。2、读写分离策略,从节点可以扩展主库节点的读能力,有效应对大并发量的读操作。1、故障恢复复杂,如果没有 RedisHA 系统 (需要开发),当主库节点出现故障时,需要手动将一个从节点晋升为主节点,同时需要通知业务方变更配置,并且需要让其他从库节点去复制新主库节点,整个过程需要人为干预,比较繁琐。3、主库的存储能力受到单机的限制,可以考虑 Pika 4、原生复制的弊端在早期的版本也会比较突出,如:Redis 复制中断后,Slave 会发起 psync,此时如果同步不成功,则会进行全量同步,主库执行全量备份的同时可能会造成毫秒或秒级的卡顿;又由于 COW 机制,导致极端情况下的主库内存溢出,程序异常退出或宕机;主库节点生成备份文件导致服务器磁盘 IO 和 CPU(压缩) 资源消耗;发送数 GB 大小的备份文件导致服务器出口带宽暴增,阻塞请求。(搜索结果收录于 2022 年 1 月 21 日)
FAQ
分布式 Redis 如何避免单点故障?
通过主从复制和哨兵机制或集群模式实现自动故障转移,确保某个节点故障时其他节点可继续使用。
Redis 集群数据如何分片?
数据被划分为 16384 个槽位,每个节点负责部分槽位,通过槽位分配实现数据分布式存储。
主从复制同步方式有哪些?
包括初始全量同步和后续增量同步,断线后可根据是否有快照判断进行全量或增量恢复。