【Redis】复制(Replica)
文章目录
- 一、复制是什么?
- 二、 基本命令
- 三、 配置(分为配置文件和命令配置)
- 3.1 配置文件
- 3.2 命令配置
- 3.3 嵌套连接
- 3.4 关闭从属关系
- 四、 复制原理
- 五、 缺点
以下是本篇文章正文内容
一、复制是什么?
主从复制
- master(main redis)以写为主,slave(secondary 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.1 protected-mode no- 指定redis运行端口
port 6379 - 指定当前工作目录,
dir 工作路径(有redis.config文件的路径) - pid文件名字,可以默认
pidfile - log文件名字
logfile - 连接密码
requirepass - dump.rdb名字
dbfilename - AOF设置,可选不开启,
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 --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入: firewall-cmd --reload
查看: firewall-cmd --zone= public --query-port=80/tcp
删除: firewall-cmd --zone= public --remove-port=80/tcp --permanent
查看日志信息是否连接成功
master主机日志:

通过日志可以查看连接状态,日志保存目录在配置文件中logfile 查看。
3.2 命令配置
命令配置是一次性,当重启后就不再生效。
在需要配置为从机的redis中运行:
replicaof 主库IP 主库端口 # 如果用redis 5.0之前版本,使用: slaveof 主库IP 主库端口
masterauth xxxx # 如果主节点需要密码认证,则需要加上这行。主节点密码为:xxxx。
配置VS命令的区别
- 配置,持久稳定
- 命令,当次生效
3.3 嵌套连接
上一个slave可以是下一个slave的master,slave同样可以接收其他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里面的offset,master和slave都会保存一个复制的offset,里面有一个masterId
- offset 是保存在backlog 中的。master只会把已经复制的offset后面的数据赋值给slave,类似断点续传
五、 缺点
复制延时,信号衰减
- 由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,
- 当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

master主机down后,会一直搁置等待主机恢复,默认情况下不会在slave节点自动重选一个master,需要人工干预。
相关文章:
【Redis】复制(Replica)
文章目录 一、复制是什么?二、 基本命令三、 配置(分为配置文件和命令配置)3.1 配置文件3.2 命令配置3.3 嵌套连接3.4 关闭从属关系 四、 复制原理五、 缺点 以下是本篇文章正文内容 一、复制是什么? 主从复制 masterÿ…...
封装了一个仿照抖音效果的iOS评论弹窗
需求背景 开发一个类似抖音评论弹窗交互效果的弹窗,支持滑动消失, 滑动查看评论 效果如下图 思路 创建一个视图,该视图上面放置一个tableView, 该视图上添加一个滑动手势,同时设置代理,实现代理方法 (BOOL)gestur…...
【JavaWeb程序设计】Servlet(二)
目录 一、改进上一篇博客Servlet(一)的第一题 1. 运行截图 2. 建表 3. 实体类 4. JSP页面 4.1 login.jsp 4.2 loginSuccess.jsp 4.3 loginFail.jsp 5. mybatis-config.xml 6. 工具类:创建SqlSessionFactory实例,进行 My…...
php探针
php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。 下面就分享下我是怎样利用php探针来探测服务器网站空间速度、性能、安全功能等。 具体步骤如下: 1.从网上下…...
泰勒级数 (Taylor Series) 动画展示 包括源码
泰勒级数 (Taylor Series) 动画展示 包括源码 flyfish 泰勒级数(英语:Taylor series)用无限项连加式 - 级数来表示一个函数,这些相加的项由函数在某一点的导数求得。 定义了一个函数f(x)表示要近似的函数 sin ( x ) \sin(x) …...
蔚来汽车:拥抱TiDB,实现数据库性能与稳定性的飞跃
作者: Billdi表弟 原文来源: https://tidb.net/blog/449c3f5b 演讲嘉宾:吴记 蔚来汽车Tidb爱好者 整理编辑:黄漫绅(表妹)、李仲舒、吴记 本文来自 TiDB 社区合肥站走进蔚来汽车——来自吴记老师的演讲…...
【Django+Vue3 线上教育平台项目实战】构建高效线上教育平台之首页模块
文章目录 前言一、导航功能实现a.效果图:b.后端代码c.前端代码 二、轮播图功能实现a.效果图b.后端代码c.前端代码 三、标签栏功能实现a.效果图b.后端代码c.前端代码 四、侧边栏功能实现1.整体效果图2.侧边栏功能实现a.效果图b.后端代码c.前端代码 3.侧边栏展示分类及…...
对比 UUIDv1 和 UUIDv6
UUIDv6是UUIDv1的字段兼容版本,重新排序以改善数据库局部性。UUIDv6主要在使用UUIDv1的上下文中实现。不涉及遗留UUIDv1的系统应该改用UUIDv7。 与 UUIDv1 将时间戳分割成低、中、高三个部分不同,UUIDv6 改变了这一序列,使时间戳字节从最重要…...
记一次饱经挫折的阿里云ROS部署经历
前言 最近在参加的几个项目测评里,我发现**“一键部署”这功能真心好用,省下了不少宝贵时间和力气,再加上看到阿里云现在有个开源上云**的活动。趁着这波热潮,今天就聊聊怎么从头开始,一步步搞定阿里云的资源编排服务…...
代码运行故障排除:PyCharm中的问题解决指南
代码运行故障排除:PyCharm中的问题解决指南 引言 PyCharm,作为一款流行的集成开发环境(IDE),提供了强大的工具来支持Python开发。然而,即使是最先进的IDE也可能遇到代码无法运行的问题。这些问题可能由多…...
css实现渐进中嵌套渐进的方法
这是我们想要的实现效果: 思路: 1.有一个底色的背景渐变 2.需要几个小的块级元素做绝对定位通过渐变filter模糊来实现 注意:这里的采用的定位方法,所以在内部的元素一律要使用绝对定位,否则会出现层级的问题&…...
JavaWeb后端学习
Web:全球局域网,万维网,能通过浏览器访问的网站 Maven Apache旗下的一个开源项目,是一款用于管理和构建Java项目的工具 作用: 依赖管理:方便快捷的管理项目以来的资源(jar包)&am…...
VUE_TypeError: Cannot convert a BigInt value to a number at Math.pow 解决方法
错误信息 TypeError: Cannot convert a BigInt value to a number at Math.pow vue 或 react package.json添加 "browserslist": {"production": ["chrome > 67","edge > 79","firefox > 68","opera >…...
Linux下mysql数据库的导入与导出以及查看端口
一:Linux下导出数据库 1、基础导出 要在Linux系统中将MySQL数据库导出,通常使用mysqldump命令行工具。以下是一个基本的命令示例,用于导出整个数据库: mysqldump -u username -p database_name > export_filename.sql 其中&a…...
Open3d入门 一文读懂三维点云
三维点云技术的发展始于20世纪60年代,随着激光雷达和三维扫描技术的进步,在建筑、考古、地理信息系统和制造等领域得到了广泛应用。20世纪90年代,随着计算机处理能力的提升,点云数据的采集和处理变得更加高效,推动了自…...
pyinstaller系列教程(一)-基础介绍
1.介绍 PyInstaller是一个用于将Python应用程序打包为独立可执行文件的工具,它支持跨平台操作,包括Windows、Linux和MacOS等操作系统。特点如下: 跨平台支持:PyInstaller可以在多个操作系统上运行,并生成相应平台的可…...
echarts图表:类目轴
category 类目轴,适用于离散的类目数据。 例如商品名称、时间等。 类目轴上的每个刻度代表一个类目,刻度之间没有量的关系,只是简单的分类。 在类目轴上,数据点会对应到相应的类目上。...
SSM贫困生申请管理系统-计算机源码84308
摘要 随着教育信息化的不断推进,越来越多的高校开始借助信息技术手段提升贫困生申请管理的效率与准确性。为此,我们设计并实现了SSM贫困生申请管理系统,旨在通过信息化手段优化贫困生申请流程,提高管理效率,为贫困生提…...
[C++]——同步异步日志系统(5)
同步异步日志系统 一、日志消息格式化设计1.1 格式化子项类的定义和实现1.2 格式化类的定义和实现 二、日志落地类设计2.1 日志落地模块功能实现与测试2.2 日志落地模块功能功能扩展 一、日志消息格式化设计 日志格式化模块的作用:对日志消息进行格式化,…...
Qt项目:基于Qt实现的网络聊天室---TCP服务器和token验证
文章目录 TCP服务器设计客户端TCP管理者ChatServerAsioIOServicePoolSession层LogicSystem总结 token验证模块完善protoStatusServer验证token客户端处理登陆回包用户管理登陆界面 本篇完成的模块是TCP服务器的设计和token验证 TCP服务器设计 客户端TCP管理者 因为聊天服务要…...
华为OD机试 新系统 C++实现【社交网络相同爱好好友查询】
社交网络相同爱好好友查询 华为OD新系统机试真题 华为OD新系统上机考试真题 5月13号 200分题型 本题更多语言题解,可点击查看:华为OD机试新系统真题 - 社交网络相同爱好好友查询(C/C/Py/Java/Js/Go)题解 题目内容 在一个社交网络中,用户之间通过"…...
用过才敢说!2026年最值得信赖的专业AI论文网站
2026年AI论文写作工具已从“内容生成”进化为“学术全流程智能助手”,核心差异体现在文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规五大维度。本次测评覆盖6款主流工具,涵盖中文/英文、全流程/专项、免费/付费场景,让你快速锁定最…...
高校科研项目如何借助Taotoken管理多模型API调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 高校科研项目如何借助Taotoken管理多模型API调用 在高校的实验室或科研团队中,进行人工智能相关的探索时,常…...
C++学习笔记26:static 静态成员
目录 一、为什么需要静态成员? 二、静态成员变量 三、静态成员变量需要类外定义 四、用静态成员变量统计对象个数 五、静态成员变量不占对象空间 六、静态成员函数 七、静态成员函数没有 this 指针 八、静态成员函数可以访问静态成员 九、调用方式 1. 通过…...
2026校招人才整体素质洞察
导读:这份《2026 校招人才素质洞察报告》由前程无忧发布,围绕 AI 时代校招变局,依托 800 万 测评数据,系统剖析应届毕业生的素质特征,提出人才筛选新坐标,为企业校招提供战略方向与实操参考。关注公众号&a…...
5分钟部署开源翻译工具:让浏览器变身智能翻译助手
5分钟部署开源翻译工具:让浏览器变身智能翻译助手 【免费下载链接】deepl-chrome-extension A DeepL Translator Chrome extension 项目地址: https://gitcode.com/gh_mirrors/de/deepl-chrome-extension 还在为浏览外文网页时频繁切换翻译工具而烦恼吗&…...
【稻米计数】形态学稻米计数【含Matlab源码 15562期】
💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…...
如何让Axure RP显示中文:三分钟搞定界面本地化
如何让Axure RP显示中文:三分钟搞定界面本地化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文…...
别再被GPG签名卡住了!手把手教你修复老版本Kali Linux的apt更新源报错
彻底解决Kali Linux旧系统GPG签名失效:从原理到实战当你面对Kali Linux系统中apt-get update命令抛出的一连串GPG签名错误时,那种挫败感我深有体会。作为一名长期维护渗透测试环境的工程师,我见过太多同行因为这类问题放弃旧系统,…...
Linux AppImage终极管理指南:如何一键集成便携应用到系统菜单
Linux AppImage终极管理指南:如何一键集成便携应用到系统菜单 【免费下载链接】AppImageLauncher Helper application for Linux distributions serving as a kind of "entry point" for running and integrating AppImages 项目地址: https://gitcode.…...
