主从
主从结构示意图:
主从架构搭建,配置从节点:
- 复制 redis.conf 文件,并修改如下配置port 8001pidfile /var/redis_8001.pidlogfile 8001.logdir /usr/local/redis_8001/data
- 配置主从配置replicaof 172.0.0.1 8002replica-read-only yes
- 根据配置文件启动redisredis-server redis.conf
主从结构工作原理
master-slave数据同步过程:
全量同步:slave会发送一个PSYNC命令给master,master接收到该命令后,会立即进行持久化操作,通过命令bgsava生成一个RDB快照文件,持久化期间,如果客户端仍在写入数据,这部分数据会被保存在内存缓冲区(repl buffer)中,持久化完成以后,master会将RDB文件发送给slave,slave 将数据加载到内存中,然后master会将缓冲区的命令发送给slave节点。
断点续传:当master和slave由于某些原因断开时,slave重新连接时,会发送 PSYNC(offset) 包含一个下标的命令,表示断开之前同步到了哪儿。master节点在写入数据时,会将数据写入一个缓冲区(repl backlog buffer),当master接受到 PSYNC(offset) 命令时,会先去查看offset是否在缓冲区,如果在缓存区,会将offset后面的命令发送给slave,否则直接进行一次全量同步