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,类似断点续传
主从复制的缺点
复制延时,信号衰减
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现