怎么搭建个主从Redis服务器,实现高可用那种,保证数据不丢失又能快速切换的方案
- 问答
- 2026-01-25 01:18:49
- 1
你要准备至少三台服务器,可以是虚拟机或物理机,为什么是三台?因为光有主从两台不够“高可用”,一旦管理它们的“哨兵”自己挂了,系统就傻了,通常的方案是:一个主Redis(负责写)、至少一个从Redis(负责读和备份)、再加上至少三个独立的“哨兵”进程来当监控和裁判,这三类角色可以部署在三台机器上,也可以合理分摊。
第一步:安装和基础配置 在所有服务器上安装相同版本的Redis,安装好后,先别急着启动,找到Redis的配置文件(通常是redis.conf),先做几个基础安全设置:设置一个强密码(requirepass 和 masterauth 都要设成一样的),防止谁都能连,最好把默认的6379端口也改一下,增加一点安全性。

第二步:配置主从关系 选定一台作为主服务器,在主服务器的配置文件里,确保“slaveof”这行是被注释掉的,然后重点设置持久化,这是保证数据不丢失的核心,根据《Redis持久化》官方文档的说明,Redis有两种主要持久化方式:RDB(快照)和AOF(记录所有写命令),为了最安全,建议两者都启用,在配置文件中,设置“save”规则(例如save 900 1),并设置“appendonly yes”,这样,数据既会定期存成快照,又会持续追加命令到日志文件,即使服务器宕机,重启后也能最大程度恢复数据。
从服务器的配置稍微不同,在从服务器的配置文件里,找到“slaveof”或“replicaof”配置项(取决于Redis版本),填上主服务器的IP地址和端口号,务必填上主服务器的密码(masterauth参数),并且把从服务器自己的“requirepass”密码设成和主服务器一样,这样,从服务器就能连接到主服务器并开始同步数据了,你还需要在从服务器上同样开启RDB和AOF持久化,这样即使它升级为主库,也能保证数据安全。

第三步:部署哨兵(Sentinel) 这是实现快速自动切换的关键,哨兵是一个独立的进程,也包含在Redis安装包里,你需要为每个哨兵准备一个配置文件(如sentinel.conf),配置文件里最少要写这几行:
- 指定监控的主库:
sentinel monitor mymaster <主服务器IP> <端口> 2,这里的“mymaster”是你给这个主从集群起的名字,最后的“2”表示至少需要2个哨兵同意才判定主库客观下线。 sentinel auth-pass mymaster <你的Redis密码>。sentinel down-after-milliseconds mymaster 5000:意思是如果哨兵5秒内联系不上主库,就认为它“主观下线”。sentinel failover-timeout mymaster 15000:故障转移的超时时间。
把这份配置文件复制到其他几台要运行哨兵的服务器上,记得修改其中监控的主库IP(如果哨兵和主库不在一台机器上,就不用改),在三台或更多台机器上分别启动哨兵进程:redis-sentinel /path/to/sentinel.conf,多个哨兵之间会自动发现并组成集群。

第四步:验证和测试
全部启动后,连接到主Redis,用info replication命令查看,应该能看到已连接的从库信息,连接到任意哨兵,用sentinel masters命令,能看到它监控的主库状态。
现在进行关键测试:
- 数据同步测试:在主库上写几个数据,马上在从库上读,看是否能读到,确认复制是工作的。
- 故障切换测试:这是核心,直接强行关掉主Redis的进程,等待几秒钟(超过你设置的down-after-milliseconds时间),然后观察哨兵的日志,你会看到哨兵们开始协商,并投票选出一个新的主库(通常是原来的某个从库),这个过程通常在几十秒内完成,之后,你再通过哨兵查询当前的主库地址,或者直接用客户端连接新的主库进行读写操作,原来的主库修复后,重新启动,它会自动变成新主库的从库。
重要提醒:
- 防火墙一定要放行Redis端口和哨兵端口(默认26379)。
- 密码配置要仔细,主从之间、客户端与服务器之间、哨兵与Redis之间都需要密码认证,一处配错就会导致复制或监控失败。
- 客户端(你的应用程序)不能直连主库或从库的固定地址,而要连接哨兵集群,由哨兵告诉客户端当前的主库地址,主流Redis客户端库都支持通过哨兵连接。
这个方案结合了主从数据复制、持久化以及哨兵的自动监控与故障转移,实现了高可用,即使主库挂了,系统也能在较短时间内(通常几十秒)自动恢复服务,并且通过持久化机制和从库的数据备份,保证了数据基本不丢失,根据《Redis Sentinel文档》的说明,哨兵的设计目标就是提供一种抵抗特定类型故障的鲁棒部署方式。
本文由盈壮于2026-01-25发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/85424.html
