Redis主从复制

文章目录

  • 定义
  • 用途
    • 怎么使用
  • 案例演示
    • 三大命令:
    • 修改配置文件细节
    • 常见方式
      • 一主二仆
      • 薪火相传
      • 反客为主
  • 复制原理和工作流程
  • 主从复制的缺点

定义

主从复制,master以写为主,slave以读为主,当master数据变化的时候,自动将新的数据异步同步到其它的slave数据库。

用途

读写分离,容灾恢复,数据备份,水平扩容支撑高并发。

怎么使用

配从库不配主库,master如果配置了requirepass参数,需要密码登录,那么slave就要配置masterauth来设置校验密码,否则master就会拒绝slave的访问请求。

在这里插入图片描述
基本命令介绍: info replication,可以查看复制节点的主从关系和配置信息。

replicaof 主库IP 主库端口 一般写入redis.conf配置文件内

slaveof 主库IP 主库端口:每次与master断开之后都需要重新连接,除非你配置进redis.conf,再运行期间修改slave节点的信息,如果该数据库已经是某个主数据库的从数据库,那么会停止与原主数据库的同步关系转而和新的主数据库同步,重新拜码头。

slaveof no one 使当前数据库停止与其他数据库的同步,转成主数据库,自立为王。

案例演示

一主二从:
在这里插入图片描述

三大命令:

  • 主从复制,配从不配主,replicaof 主库IP 主库端口
  • 改换门庭,slaveof 新主库IP 新主库端口
  • 自立为王:slaveof no one

修改配置文件细节

  • daemonize yes用来定制redis是否要用守护线程的方式启动,当yes,Redis会在后台运行,除非kill该进程。,采用no时,当前界面会进入redis命令行界面,exit强制退出或者关闭连接工具都会导致redis进程退出。
  • 注释掉bind 127.0.0.1
  • protected-mode no这样可以通过任何连接方式访问Redis,不用只通过Unix socket或者127.0.0.1的TCP连接才能访问Redis。
  • port 端口号
  • dir 当前工作目录 dir ./就是把当前目录当作工作目录
  • pidfile ...
  • logfile ...
  • requirepass 密码 在配置文件中配置requirepass的密码(当redis重启时密码依然有效)
  • dbfilename dump6379,rdb 设置dump.rdb名字
  • masterauth “111111” 从机访问主机的通行密码masterauth,从机需要配置,主机不用配置

常见方式

一主二仆

方案一:配置文件固定写死
比如配置从机6380,配置从库不配置主库
在这里插入图片描述
先master后两台slave依次启动
在这里插入图片描述
从机执行不了写命令:
在这里插入图片描述

  • 从机是从头开始复制还是从切入点开始复制?
    首次一锅端,后续跟随,master写,slave跟
  • 主机shutdown,从机会上位吗?
    从机不动,原地待命,从机数据可以正常使用,等待主机重启动归来。
  • 主机shutdown后,重启后主从关系还在吗?从机还能否顺利复制?
    青山依旧在
  • 某台从机down了,master继续,从机重启后能跟上大部队吗?
    能,重启后同步master数据,从机数据与主机数据不同,从机将执行全量复制

薪火相传

上一个slave可以是下一个slave的master,slave同样可以接受其他slaves的连接和同步请求,那么该slave作为链条中下一个master可以有效减轻主master的写压力。
如果中途变更转向:会清除之前的数据,重新建立拷贝最新的

反客为主

slaveof no one 使当前数据库停止与其他数据库的同步,转成主数据库

复制原理和工作流程

  • slave启动,同步初请:slave启动成功连接到master后会发送一个同步命令,slave首次全新连接master,一次完全同步,slave自身原有数据会被master数据覆盖清除
  • 首次连接,全量复制:master节点收到同步命令后会开始在后台保存快照(主从复制时触发RDB),同时收集所有接受到的用于修改数据集命令缓存起来,master节点执行RDB持久化后将rdb快照文件和所有缓存的命令发送到所有slave中,完成一次完全同步,而slave服务在接受到数据库文件数据后,将其存盘并加载到内存中,从而完成复制初始化。
  • 心跳持续,保持通信:master发出ping包周期,默认10秒
  • 进入平稳,增量复制:Master继续将新的所有收集到的修改命令自动依次传给slave,完成同步
  • 从机下线,重连续传:master会检查backlog里面的offset,master和slave都会保持一个复制的offset还有一个masterId,offset是保持在backlog中的。Master只会把已经复制的offset后面的数据复制给slave,类似断点续传。

主从复制的缺点

复制延时,信号衰减:
在这里插入图片描述

master挂了如何办?

默认情况下不会自动重选一个master
那每次都要人工干预?无人值守安装变成刚需

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5533.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十分钟搞懂Java限流及常见方案

目录限流基本概念QPS和连接数控制传输速率黑白名单分布式环境限流方案常用算法令牌桶算法漏桶算法滑动窗口常用的限流方案Nginx限流中间件限流限流组件合法性验证限流Guawa限流网关层限流从架构维度考虑限流设计限流基本概念 QPS和连接数控制 传输速率 黑白名单 分布式环境…

HTML5 <abbr> 标签 和 HTML5 <applet> 标签

标签定义及使用说明 <abbr> 标签用来表示一个缩写词或者首字母缩略词&#xff0c;如"WWW"或者"NATO"。 通过对缩写词语进行标记&#xff0c;您就能够为浏览器、拼写检查程序、翻译系统以及搜索引擎分度器提供有用的信息。 实例 被标记的缩写词如…

《程序员面试金典(第6版)》面试题 08.04. 幂集(回溯算法,位运算,C++)不断更新

题目描述 幂集。编写一种方法&#xff0c;返回某集合的所有子集。集合中不包含重复的元素。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入&#xff1a; nums [1,2,3] 输出&#xff1a; [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 解题思路与代码 其实…

博客让谷歌或是百度收录

参考以下大佬的博客教程 Hexo框架(六)&#xff1a;SEO优化及站点被搜索引擎收录设置 | 你真是一个美好的人类 第一步 安装百度和 Google 的站点地图生成插件&#xff1a; npm install hexo-generator-baidu-sitemap --save npm install hexo-generator-sitemap --save 然后来…

文件或目录损坏且无法读取错误的恢复方法

我们在日常的生活当中经常都会遇到各种各样的问题。比如有些时候将磁盘插入电脑之后突然跳出来一个“磁盘结构损坏且无法读取”的提示框&#xff0c;那么像这个情况该怎么解决呢?别着急&#xff0c;小编现在就将磁盘结构损坏且无法读取这个问题的解决方法来分享给你们 文件或目…

数据结构和算法学习记录——栈和队列习题-用队列实现栈、用栈实现队列(核心思路、解题过程、完整题解)

目录 用队列实现栈 题目描述 题目示例 核心思路 解题过程 定义结构体 创建栈结构体函数 入栈函数 出栈函数 取栈顶数据函数 判断栈是否为空函数 销毁栈函数 完整题解&#xff08;C语言&#xff09; 用栈实现队列 题目描述 题目示例 核心思路 完整题解…

计算机网络管理 ARP 地址解析协议 ARP的基础原理 Wireshark ARP 报文分析 ARP的通信过程

⬜⬜⬜ ---&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; (*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;---⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &#x1f381;欢迎各位→…

GPT4和ChatGPT的区别,太让人震撼

文 | Serendipity知乎 前言 GPT4上午朋友圈已经刷屏啦&#xff0c;不过我还在忙&#xff0c;刚刚才登上 GPT-4 &#xff0c;现在来体验一下~ 附 GPT-4 能力测试站&#xff08;无需魔法&#xff0c;仅供国内研究测试&#xff09;&#xff1a; https://gpt4test.com 附 Cha…

解决代码重复的优化方案

上周公司组织培训Spring 基于注解的数据校验方案&#xff0c;可以节省很大工作量&#xff0c;其实&#xff0c;除了数据校验&#xff0c;还有很多其他方案&#xff0c;可以大幅提高代码的整洁性。如&#xff1a;设计模式、OOP 思想、反射、泛型等等&#xff0c;框架往往需要以同…

强化学习下的多教师知识蒸馏模型(学习笔记

对知识蒸馏的方法提出了一个新的方向 采用多个不同的教师模型同时训练一个学生模型 一个很明显的好处 就是 多个教师model可以减少单个教师模型它的bias 但是当我们有多个老师的时候&#xff0c; 学生模型是否能够根据自己的能力选择和结合教师模型的特点 来选择性的向老师…

Maven依赖管理

文章目录一、mvn依赖的特性1. 依赖的范围2. 依赖的传递3. 依赖的排除二、mvn中的继承和聚合1. 聚合2. 继承3. Demo1、首先创建一个父工程并且修改它的打包方式为 pom2、创建子模块工程3、依赖管理三、企业级知识扩展1. 属性2. 版本管理3. 资源配置4. 多环境开发配置Maven工程约…

SWAT模型(高阶)

SWAT模型高阶十七项案例分析实践应用 导师&#xff1a;刘老师【副教授】&#xff1a;来自国内双一流高校&#xff0c;长期从事数字流域建模、流域水土过程模拟、遥感及GIS技术应用等领域工作&#xff0c;发表多篇SCI论文暨完成多项科研项目&#xff0c;具有资深的技术底蕴和专…

Python 01 初识python

目录 一、编程是怎么来到我们这个世界的&#xff1f; 二、Python的由来&#xff1f; 三、什么是python&#xff1f; 3.1面向对象和面向过程 3.1.1面向对象 3.1.2 面向过程 3.2解释性 3.2.1 编译性 3.2.2 解释性 3.3交互式 四、Python3和Python2 五、python和其他…

基于LiFePO4和硅/还原氧化石墨烯纳米复合材料的锂离子电池

A lithium-ion battery based on LiFePO4 and silicon/reduced graphene oxide nanocomposite highlights&#xff1a; 硅纳米颗粒(nSi)和还原氧化石墨烯(RGO)作为阳极&#xff1b;微波辐射&#xff0c;对混合物进行热处理&#xff0c;合成nSi/RGO复合物&#xff1b;通过不同充…

Jsoup使用教程以及使用案例

文章目录1&#xff1a;什么是Jsoup1&#xff1a;Jsoup概述2&#xff1a;Jsoup能做什么2&#xff1a;Jsoup相关概念3&#xff1a;获取文档1&#xff1a;导入jsoup的jar包2&#xff1a;从URL中加载文档对象&#xff08;常用&#xff09;3&#xff1a;从本地文件中加载文档对象4&a…

2023 海外工具站 3 月复盘

3 月的碎碎念&#xff0c;大致总结了商业人生、付费软件、创业方向选择、创业感性还是理性、如何解决复杂问题及如何成长这几个方面的内容。 商业人生 商业人生需要试错能力和快速信息收集与验证校准&#xff1b; 商业逻辑需要试错能力&#xff0c;收集各种渠道信息后整理决…

手把手教你一步一步暴力破解密码,学不会来找我

目录 一、什么是暴力破解&#xff1f; 二、暴力破解弱口令实验 三、如何防御暴力破解攻击&#xff1f; 一、什么是暴力破解&#xff1f; 暴力破解也可称为穷举法、枚举法&#xff0c;是一种针对于密码的破译方法&#xff0c;将密码进行逐个推算直到找出真正的密码为止。设置长而…

[学习笔记] 3. C++ / CPP提高

本阶段主要针对C泛型编程和STL技术做详细讲解&#xff0c;探讨C更深层的使用。 [学习笔记] 3. C / CPP提高1. 模板1.1 模板的概念1.2 函数模板1.2.1 函数模板语法1.2.2 函数模板注意事项1.2. 3函数模板案例1.2.4 普通函数与函数模板的区别1.2.5 普通函数与函数模板的调用规则1.…

HTML标签

目录 1.注释标签 2.标题标签:h1-h6 3.段落标签 4.换行标签 5.转义字符 6.格式化标签 7.图片标签:img 8.超链接便签:a 9.表格标签 10.列表标签 11.表单标签 12.无语义标签:div&span 1.注释标签 <!-- 我是注释 --> ctrl/快捷键可以快速进行注释/取消注释 …

PVE虚拟机安装爱快/iKuai软路由(爱快软路由虚拟机系统安装教程)

上篇提到PVE后&#xff0c;装LINUX CENTOS8&#xff0c;现在装个爱快软路由. 一、软硬件要求 1、安装好PVE虚拟环境的X86系统&#xff0c;32位爱快系统需要512MB以上内存&#xff0c;64位爱快系统需要4GB以上。 2、双网口主板&#xff0c;如果是单网口要配置openwrt/LEDE为单…