redis-4,redis主从复制
redis主从复制
就是主从复制,master以写为主,slave以读为主
读写分离
容灾备份
支持高并发,水平扩容
配从库不配主库
master如果配置了requirepass,需要密码登录,那么slave就要配置masterauth来设置校验密码,否则的话master会拒绝slave的访问请求
主要命令
info replication
可以查看复制节点的主从关系和配置信息
replicaof 主库ip 主库端口
一般写在从机的redis.conf配置文件中
slaveof 主库ip 主库端口
如果没有写入配置文件,每次重写都要重新链接master
在运行期间修改某个从节点的信息,那么从节点会和主节点断开连接,重新和新指定的主服务器建立链接
slaveof no one
使当前数据库停止和其他数据库的链接,转为主数据库
主从复制
改换门庭
自立为王
问题
从机是否可以执行写命令
从机只能执行读,不能执行写命令
当一个从机宕机重启之后,还可以自动更新最新内容
主机宕机之后从机还是从机,主机上线之后依然是主机
薪火相传
上一个slaver是下一个slaver的master,slave同样可以接收salves的链接和同步请求
salveof 新主库ip 新主库端口
中间的依然不能进行写操作
反客为主
从主从体系中脱离
slaveof no one
数据还在脱离的数据库中
flushdb 清除数据库
主从复制总结
复制原理和工作流程
slave启动,同步初请: master启动之后启动slave,从主节点全盘复制过来
slave启动成功连接到master之后,会发送一个sync命令
slave首次全新连接master,一次完全同步将被自动执行,slave之前的数据都被覆盖
首次连接,全量复制: master节点收到sync命令之后会开始在后台保存快照,同时收集所有接收到的用于修改数据集命令缓存起来,rdb持久化结束之后,master将rdb快照文件和所有缓存的命令发送到所有slave,以完成一次完全同步
心跳持续,保持通信: repl-ping-replica-period 10
master发出心跳包的周期,默认是10秒,每10s发一次心跳包,保持命令的持续
进入平稳,增量复制: master将新的所有收集到的修改命令自动一次传递给slave,完成同步
从机下线,重连续传 master会检查backing里面的offset,master和slave都会保存一个复制的offset还有一个masterid,offset是保存在backing中的,master只会把已经复制的offset后面的数据赋值给slave,类似断点续传
主从复制的缺点
复制延时,信号衰减

浙公网安备 33010602011771号