当前位置:网站首页>Redis入门完整教程:复制配置
Redis入门完整教程:复制配置
2022-07-06 19:11:00 【谷哥学术】
6.1.1 建立复制
参与复制的Redis实例划分为主节点(master)和从节点(slave)。默认
情况下,Redis都是主节点。每个从节点只能有一个主节点,而主节点可以
同时具有多个从节点。复制的数据流是单向的,只能由主节点复制到从节
点。配置复制的方式有以下三种:
1)在配置文件中加入slaveof{masterHost}{masterPort}随Redis启动生
效。
2)在redis-server启动命令后加入--slaveof{masterHost}{masterPort}生
效。
3)直接使用命令:slaveof{masterHost}{masterPort}生效。
综上所述,slaveof命令在使用时,可以运行期动态配置,也可以提前写
到配置文件中。例如本地启动两个端口为6379和6380的Redis节点,在
127.0.0.1:6380执行如下命令:
127.0.0.1:6380>slaveof 127.0.0.1 6379
slaveof配置都是在从节点发起,这时6379作为主节点,6380作为从节
点。复制关系建立后执行如下命令测试:
127.0.0.1:6379>set hello redis
OK
127.0.0.1:6379>get hello
"redis"
127.0.0.1:6380>get hello
"redis"
从运行结果中看到复制已经工作了,针对主节点6379的任何修改都可以
同步到从节点6380中,复制过程如图6-1所示。
slaveof本身是异步命令,执行slaveof命令时,节点只保存主节点信息后
返回,后续复制流程在节点内部异步执行,具体细节见之后6-3复制原理小
节。主从节点复制成功建立后,可以使用info replication命令查看复制相关
状态,如下所示。
1)主节点6379复制状态信息:
127.0.0.1:6379>info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6379,state=online,offset=43,lag=0
....
2)从节点6380复制状态信息:
127.0.0.1:6380>info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
...
6.1.2 断开复制
slaveof命令不但可以建立复制,还可以在从节点执行slaveof no one来断
开与主节点复制关系。例如在6380节点上执行slaveof no one来断开复制,如
图6-2所示。
断开复制主要流程:
1)断开与主节点复制关系。
2)从节点晋升为主节点。
从节点断开复制后并不会抛弃原有数据,只是无法再获取主节点上的数
据变化。
通过slaveof命令还可以实现切主操作,所谓切主是指把当前从节点对主
节点的复制切换到另一个主节点。执行slaveof{newMasterIp}
{newMasterPort}命令即可,例如把6380节点从原来的复制6379节点变为复
制6381节点,如图6-3所示。
切主操作流程如下:
1)断开与旧主节点复制关系。
2)与新主节点建立复制关系。
3)删除从节点当前所有数据。
4)对新主节点进行复制操作。
运维提示
切主后从节点会清空之前所有的数据,线上人工操作时小心slaveof在错
误的节点上执行或者指向错误的主节点。
6.1.3 安全性
对于数据比较重要的节点,主节点会通过设置requirepass参数进行密码
验证,这时所有的客户端访问必须使用auth命令实行校验。从节点与主节点
的复制连接是通过一个特殊标识的客户端来完成,因此需要配置从节点的
masterauth参数与主节点密码保持一致,这样从节点才可以正确地连接到主
节点并发起复制流程。
6.1.4 只读
默认情况下,从节点使用slave-read-only=yes配置为只读模式。由于复
制只能从主节点到从节点,对于从节点的任何修改主节点都无法感知,修改
从节点会造成主从数据不一致。因此建议线上不要修改从节点的只读模式。
6.1.5 传输延迟
主从节点一般部署在不同机器上,复制时的网络延迟就成为需要考虑的
问题,Redis为我们提供了repl-disable-tcp-nodelay参数用于控制是否关闭
TCP_NODELAY,默认关闭,说明如下:
·当关闭时,主节点产生的命令数据无论大小都会及时地发送给从节
点,这样主从之间延迟会变小,但增加了网络带宽的消耗。适用于主从之间
的网络环境良好的场景,如同机架或同机房部署。
·当开启时,主节点会合并较小的TCP数据包从而节省带宽。默认发送
时间间隔取决于Linux的内核,一般默认为40毫秒。这种配置节省了带宽但
增大主从之间的延迟。适用于主从网络环境复杂或带宽紧张的场景,如跨机
房部署。
运维提示
部署主从节点时需要考虑网络延迟、带宽使用率、防灾级别等因素,如
要求低延迟时,建议同机架或同机房部署并关闭repl-disable-tcp-nodelay;如
果考虑高容灾性,可以同城跨机房部署并开启repl-disable-tcp-nodelay。
边栏推荐
- Niuke programming problem -- double pointer of 101 must be brushed
- Wireshark installation
- Integerset of PostgreSQL
- 1 -- Xintang nuc980 nuc980 porting uboot, starting from external mx25l
- MES管理系统的应用和好处有哪些
- Convert widerperson dataset to Yolo format
- Django数据库(SQlite)基本入门使用教程
- MySQL提升大量数据查询效率的优化神器
- Ali yunyili: how does yunyuansheng solve the problem of reducing costs and improving efficiency?
- 运维管理系统有哪些特色
猜你喜欢
普通测试年薪15w,测试开发年薪30w+,二者差距在哪?
How to write test cases for test coupons?
数论 --- 快速幂、快速幂求逆元
Electrical engineering and automation
3 -- Xintang nuc980 kernel supports JFFS2, JFFS2 file system production, kernel mount JFFS2, uboot network port settings, and uboot supports TFTP
Linear list --- circular linked list
Number theory --- fast power, fast power inverse element
Web3's need for law
实施MES管理系统时,哪些管理点是需要注意的
Kysl Haikang camera 8247 H9 ISAPI test
随机推荐
Digital scrolling increases effect
MySQL提升大量数据查询效率的优化神器
The third season of ape table school is about to launch, opening a new vision for developers under the wave of going to sea
数论 --- 快速幂、快速幂求逆元
Read fast RCNN in one article
阿里云易立:云原生如何破解企业降本提效难题?
记一次JAP查询导致OOM的问题分析
Here comes a white paper to uncover the technology behind Clickhouse, a node with 10000 bytes!
压缩 js 代码就用 terser
Google Earth engine (GEE) -- 1975 dataset of Landsat global land survey
安全巡检的工作
How to write test cases for test coupons?
Unity custom webgl packaging template
服装企业部署MES管理系统的五个原因
QPushButton-》函数精解
[Mori city] random talk on GIS data (II)
3--新唐nuc980 kernel支持jffs2, Jffs2文件系统制作, 内核挂载jffs2, uboot网口设置,uboot支持tftp
测试优惠券要怎么写测试用例?
Kysl Haikang camera 8247 H9 ISAPI test
Rethinking of investment