levels of contents

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,类似断点续传

主从复制的缺点

复制延时,信号衰减

posted @   niko5960  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示