redis 复制

一、复制方式

redis默认为主节点,主从节点是一对多的关系,支持级联复制

配置复制的方式有以下三种:
1)在配置文件中加入slaveof{masterHost}{masterPort}随Redis启动生效。
2)在redis-server启动命令后加入--slaveof{masterHost}{masterPort}生效。
3)直接使用命令:slaveof{masterHost}{masterPort}生效。

安全性:通过主节点设置的requirepass参数进行密码验证,从库配置masterauth 参数与主节点保持一致
只读模式:从节点使用slave-read-only=yes配置为只读模式,默认为只读

延迟:
Redis为我们提供了repl-disable-tcp-nodelay参数用于控制是否关闭TCP_NODELAY
·当关闭时,主节点产生的命令数据无论大小都会及时地发送给从节点,这样主从之间延迟会变小,但增加了网络带宽的消耗。适用于主从之间的网络环境良好的场景,如同机架或同机房部署。
·当开启时,主节点会合并较小的TCP数据包从而节省带宽。默认发送时间间隔取决于Linux的内核,一般默认为40毫秒。这种配置节省了带宽但增大主从之间的延迟。
 适用于主从网络环境复杂或带宽紧张的场景,如跨机房部署。

127.0.0.1:6380> config get repl-disable-tcp-nodelay
1) "repl-disable-tcp-nodelay"
2) "no

二、配置复制

高版本有新的语法:在从节点配置
replicaof 127.0.0.1 6379
config set masterauth 123456

配置完成后,查看主节点复制状态
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6380,state=online,offset=688,lag=0
******
master_repl_offset:688
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:688

主节点:
127.0.0.1:6379> set oracle alan
OK
127.0.0.1:6379> get oracle
"alan"
127.0.0.1:6379>  

从节点:
127.0.0.1:6380>  get oracle
"alan"
127.0.0.1:6380>

三、断开复制


断开命令:slaveof no one
 断开复制主要流程:
1)断开与主节点复制关系。
2)从节点晋升为主节点。
从节点断开复制后并不会抛弃原有数据,只是无法再获取主节点上的数据变化

通过slaveof命令还可以实现切主操作,所谓切主是指把当前从节点对主节点的复制切换到另一个主节点。
执行slaveof{newMasterIp}{newMasterPort}命令即可

切主操作流程如下:
1)断开与旧主节点复制关系。
2)与新主节点建立复制关系。
3)删除从节点当前所有数据。
4)对新主节点进行复制操作。

注意:切主后,从节点原数据会被清空

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值