Redis主从复制怎么弄,主从配置那些事儿简单聊聊
- 问答
- 2026-01-14 05:11:54
- 3
说白了,Redis的主从复制,就像是一个老师带着一群学生,老师(主节点)写什么,学生(从节点)就跟着抄什么,目的是为了备份数据,万一老师生病了(主节点宕机),能有个学生立刻顶上去,保证课堂(服务)不中断,这事儿弄起来其实不复杂,咱们一步步说。
你得有个Redis
你得先安装好Redis,这个就不多说了,假设你已经在两台或多台服务器上装好了Redis,我们管其中一台叫主库(Master),其他的叫从库(Slave)。
最省事的配置方法:运行时动态改
Redis配置起来很灵活,最简单的方式是不用动配置文件,直接在从库的Redis命令行里操作,你用redis-cli连上准备当从库的那个Redis服务,然后执行这么一句命令:
SLAVEOF <主库的IP地址> <主库的端口号>
你的主库IP是192.168.1.100,端口是默认的6379,那你就在从库上执行 SLAVEOF 192.168.1.100 6379。
执行完这一句,神奇的事情就发生了,这个从库会立刻清空自己原来的所有数据(如果有的话),然后屁颠屁颠地去找主库,开始同步数据,你可以在主从库上分别用 info replication 命令查看状态,如果看到从库的状态显示为“online”,主库下面挂了这个从库的地址,那就说明同步成功了,以后主库有任何数据写入,都会自动同步到这个从库来。
这种方法的好处是快,不用重启服务,但有个缺点:一旦你这个从库重启了,刚才的配置就没了,又变回一个独立的Redis了,这通常用于临时调试,生产环境我们一般用下面这种更稳当的方法。
一劳永逸的方法:改配置文件
想让从库的身份永久生效,就得修改它的配置文件,通常是 redis.conf。
- 找到并编辑从库的配置文件:用编辑器打开从库服务器上的
redis.conf文件。 - 配置主库信息:在文件里找到
# replicaof <masterip> <masterport>这一行,这行开头有个,表示是注释,不起作用,你把它改成:replicaof 192.168.1.100 6379(注意:在旧版本的Redis中,这个指令可能叫
slaveof,新版本都统一叫replicaof了,意思一样。) - 设置主库密码(如果需要):如果你的主库设置了密码(通过
requirepass配置项),你必须在从库的配置文件中告诉从库密码是多少,否则它连不上主库,找到# masterauth <master-password>这一行,改成:masterauth 你的主库密码 - 保存并重启从库:保存配置文件,然后重启从库的Redis服务。
这样,从库每次启动都会自动去连接主库并同步数据,这就非常稳妥了。
配置完了,会发生啥?
当你配置好之后,整个同步过程分为两步走,根据从库的数据新旧程度,主库会采取不同的策略(根据Redis官方文档的说明)。
-
全量同步(第一次握手或者数据差太远时):如果从库是全新的,或者落后主库太多数据了,主库就会启动一个“全量同步”,简单说,就是主库会对自己的当前数据状态拍一个快照(生成一个RDB文件),然后把整个快照文件发给从库,从库收到后,会清空自己的旧数据,再把这个快照文件加载进来,这个过程如果数据量大,会比较耗时,而且会消耗主库的CPU和网络带宽。
-
增量同步(正常运行时):全量同步完成后,主从之间就进入“增量同步”模式了,主库每执行一个会让数据变化的命令(比如set、del等),都会把这个命令同时存到一个叫做“复制积压缓冲区”(replication backlog)的队列里,主库会实时地把这个队列里的新命令发送给从库,从库再执行一遍,这样双方的数据就始终保持一致了,这个方式非常轻量且快速。
需要注意的几个坑
- 网络要通畅:主从之间网络不好是万恶之源,如果网络断的时间太长,从库落后主库的数据量超过了那个“复制积压缓冲区”的大小,那么从库就连不上了,只能再次进行耗时的全量同步,保证主从网络稳定和适当调大
repl-backlog-size参数很重要。 - 从库是只读的:默认情况下,从库是只读的(
slave-read-only配置为yes),你不能直接在从库上写数据,否则会导致主从数据不一致,这个设置一般不要改。 - 主库挂了怎么办? 这就是我们做主从的目的之一,主库挂掉后,你需要手动(或者用哨兵Sentinel工具自动)选择一个从库,把它“晋升”为新的主库,晋升的方法就是在这个从库上执行
SLAVEOF NO ONE命令,让它脱离从属关系,变成主库,然后再把其他从库重新指向这个新的主库。 - 密码别忘啦:就像前面说的,主库有密码的话,从库配置里一定要写对
masterauth,这是个常见的踩坑点。
配置Redis主从复制,核心就是两步:1. 在从库指明老大(主库)是谁;2. 确保从库能连上老大,用命令行方式是临时玩玩,改配置文件才是正道,配置好后,理解它背后全量和增量同步的原理,能帮你更好地排查可能遇到的问题,这事儿不难,动手试一次就全明白了。

本文由畅苗于2026-01-14发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/80359.html
