做推广用的网站,荆楚网微信公众平台下载,安装好采集侠网站地图后在哪里查看网站地图,做企业网的公司文章目录 一、复制是什么#xff1f;二、 基本命令三、 配置#xff08;分为配置文件和命令配置#xff09;3.1 配置文件3.2 命令配置3.3 嵌套连接3.4 关闭从属关系 四、 复制原理五、 缺点 以下是本篇文章正文内容
一、复制是什么#xff1f;
主从复制
master#xff… 文章目录 一、复制是什么二、 基本命令三、 配置分为配置文件和命令配置3.1 配置文件3.2 命令配置3.3 嵌套连接3.4 关闭从属关系 四、 复制原理五、 缺点 以下是本篇文章正文内容
一、复制是什么
主从复制
mastermain redis以写为主slavesecondary redis以读为主不能写数据当master数据变化时自动将新的数据异步同步到其他slave数据库
功能
读写分离主机只写从机只读down机恢复主机down从机数据可用但仍是slave等待主机恢复数据备份水平扩容支撑高并发
配slave不配master 权限细节
master如果配置了 requirepass 参数需要密码登录slave 需要配置 masterauth来设置检验密码否则的话master会拒绝slave的访问请求
二、 基本命令
info replication // 查看复制节点的主从关系和配置信息replicaof/slaveof 主库IP 主库端口
// replicaof/slaveof这两个一样一般写入进redis.conf配置文件内但是政治原因redis 5版本后一般用replicaof
// 在运行期间修改slave节点的信息如果该数据库已经是某个数据库的从数据库那么会停止和原主数据库的同步关系转而和新的主数据库同步replicaof/slaveof no one // 使当前数据库停止与其他数据库的同步升级为主数据库
三、 配置分为配置文件和命令配置
3.1 配置文件
master 主机中的conf文件需要配置
开启daemonize yes注释掉bind 127.0.0.1protected-mode no指定redis运行端口 port 6379指定当前工作目录dir 工作路径(有redis.config文件的路径)pid文件名字可以默认 pidfilelog文件名字 logfile 连接密码 requirepass dump.rdb名字 dbfilenameAOF设置可选不开启appendonly yes ; appendfilename
slave 从机redis.conf中需要配置 从机配置上主机的ip、端口 replicaof、密码 masterauth
注意防火墙配置无法连接时可能需要关闭防火墙
启动 systemctl start firewalld
关闭 systemctl stop firewalld
查看状态 systemctl status firewalld
开机禁用 systemctl disable firewalld
开机启用 systemctl enable firewalld添加 firewall-cmd --zonepublic --add-port80/tcp --permanent --permanent永久生效没有此参数重启后失效
重新载入 firewall-cmd --reload
查看 firewall-cmd --zone public --query-port80/tcp
删除 firewall-cmd --zone public --remove-port80/tcp --permanent查看日志信息是否连接成功 master主机日志 通过日志可以查看连接状态日志保存目录在配置文件中logfile 查看。
3.2 命令配置
命令配置是一次性当重启后就不再生效。 在需要配置为从机的redis中运行
replicaof 主库IP 主库端口 # 如果用redis 5.0之前版本使用 slaveof 主库IP 主库端口
masterauth xxxx # 如果主节点需要密码认证则需要加上这行。主节点密码为xxxx。配置VS命令的区别
配置持久稳定命令当次生效
3.3 嵌套连接
上一个slave可以是下一个slave的masterslave同样可以接收其他slaves的连接和同步请求那么该slave作为了链条中下一个的master。
可以有效减轻主master的写压力中途变更主从关系时会清除之前的数据重新建立拷贝最新的中间的master不具备写能力
replicaof 新主库IP 新主库端口3.4 关闭从属关系
replicaof no one # 使当前数据库停止与其他数据库的同步转成主数据库关闭后数据还在从redis中
四、 复制原理
slave启动同步初请
slave启动成功连接到master后会发送一个sync命令slave首次全新连接master一次完全同步全量复制将被自动执行slave自身原有数据会被master数据覆盖清除
首次连接全量复制
master节点收到sync命令后会在后台开始保存快照即RDB持久化主从复制会触发RDB同时收集所有接收到的用于修改数据集命令缓存起来master节点执行RDB持久化后master将rdb快照文件和缓存的命令发送到所有slave用以完成一次完全同步而slave服务在接收到数据库文件数据后将其存盘并加载到内存中从而完成复制初始化
心跳持续保持通信
repl-ping-replica-period 10 master发出PING包的周期默认是10秒
进入平稳增量复制
master 继续将新的所有收集到的修改命令自动一次传给slave完成同步
从机下线重连续传
master 会检查backlog里面的offsetmaster和slave都会保存一个复制的offset里面有一个masterIdoffset 是保存在backlog 中的。master只会把已经复制的offset后面的数据赋值给slave类似断点续传
五、 缺点
复制延时信号衰减
由于所有的写操作都是先在Master上操作然后同步更新到Slave上所以从Master同步到Slave机器有一定的延迟当系统很繁忙的时候延迟问题会更加严重Slave机器数量的增加也会使这个问题更加严重。
master主机down后会一直搁置等待主机恢复默认情况下不会在slave节点自动重选一个master需要人工干预。