1. 前言
今天从实用的角度来分析下 服务器间的主从部署,以及主从复制备份
2. 配置
- 一个服务器不同的端口代表不同的Redis实例
- 端口
6379
表示一台Redis主节点 - 端口
6380
表示一台Redis从节点,主节点的端口是6379
- 端口
6381
表示一台Redis从节点,主节点的端口是6380
3. 多种配置方式
3.1 通过配置文件
3.1.1 配置信息
- 查看配置文件
- 查看主节点信息
通过下列配置可以看到作为主节点,挂载哪些从节点,以及该节点是否是主节点
info replication
- 查看从节点信息
3.1.2 数据同步
- 主节点数据
- 从节点数据
- 给主节点添加数据
- 主节点 到 从节点 同步数据的偏移量
通过上述节点中可以看到。当主节点添加数据后,会定时部分同步到从节点
3.1.3 从节点是只读的
通过下面的截图可以看到,如果是
从节点
的话,是只有只读权限的,目的是为了保证主从数据的一致性
3.1.4 断开复制
上述截图中可以通过命令slaveof no one
将主从断开。 此节点就是主节点了
3.2 通过命令设置
- 此时进程
6381
是作为主节点
- 通过命令设置从节点
通过命令
slaveof 127.0.0.1 6380
来设置主从节点
3.3 通过启动命令来设置
在
redis-server
启动命令后加入--slaveof {masterHost} {masterPort }
生效
3.4 传输复制延迟
主从节点一般部署在不同机器上,复制时的网络延迟就成为需要考虑的问题,Redis为我们提供了repl-disable-tcp-nodelay参数用于控制是否关闭TCP_NODELAY,默认关闭
4. 主从复制的原理
通过上述的命令可以得知,其实并不是执行命令
slaveof ip port
后会立马进行同步,而是经过socket连接 =>ping命令
=>权限校验
后,才开始进行数据传输。
5. 结束
上述就是主从复制的注意点以及实现原理。如果有后续的知识还是会不断的补充的。 如果对大家有一丁点的用处,也请大家及时关注 以及收藏