主从同步
192.168.209.199 主
192.168.209.131 从
在从redis上执行下面语句,就可完成主从同步
slaveof 192.168.209.199 7379
在redis上执行下面语句,可断开主从同步
slaveof no one
查看主从同步是否成功(在从redis上执行)
info Replication
输出结果如下:
master_host:192.168.209.199
master_port:7379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
主挂了,从提升为主
主挂了之后,从需要提升为主。如果从配置里面有 slave-read-only yes 需要设置为no
config set slave-read-only no (把从只读关闭)
config get * (查看redis里有哪些参数可以在线修改的)
然后继续执行 slaveof no one
主起来后,需要变为从了
slaveof 192.168.209.133 7379 (此时192.168.209.133会自动bgsave一份最新的rdb文件出来,然后发给192.168.209.199让他获取同步的数据。192.168.209.199获取到这份rdb后,会清空自己的所有数据,然后加载这份最新的rdb文件)
如果主从同步时,生成的rdb文件过大,这会有什么影响?
一般如果生成的rdb文件大于了6G,那么在主从同步,全量发送rdb的时候。repl-timeout默认是60秒,超过6G的rdb发送一般会超时,主从同步失败,进行断开。所以超过6G了,要修改repl-timeout的大小。一般男rdb压缩为1:5.内存中的数据为30G,压缩为6G。(还没遇到过redis内存数据超过30G的)
什么时候,主从同步时增量同步,什么时候时全量同步?
当主的运行id不变,从之前有同步过主的数据的,但是因为网络抖动或者其他原因,断开了。此时从从新连接回主。此时需要主的运行id不变,还有从需要同步的内容,在主的复制积压缓冲区都能找得到,此时才可以进行增量同步。
当不能进行增量同步,都会进行全量同步。(1.主的运行id改变了 2.复制积压缓冲区找不到从要同步的内容 3.第一次主从同步等)
网友评论