redis超详细篇6 redis主从复制(配置主从、薪火相传、反客为主)

本文主要是介绍redis超详细篇6 redis主从复制(配置主从、薪火相传、反客为主),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一篇我们讲了redis的持久化相关知识,本篇带领大家了解下主从复制

开篇

我们为啥需要做主从复制?
读写分离,性能扩展
容灾快速恢复
上诉两种理由大家都能理解吧,就不做赘述

下面江苏下如何做主从配置

主从配置

主从配置我们举例哈,分三个步骤进行
1.创建一个myredis文件夹复制redis配置文件
2.写一主两从配置文件
3.写主从命令

以下仅为测试案例:
我们新建一个myredis的文件夹,将redis目录下得redis.conf配置文件拷贝到这文件夹下
在这目录另外建立三个配置文件分别命名:redis6379.conf、redis6380.conf、redis6381.conf;
redis6379作为主服务器,其他两个作为从服务器
在这里插入图片描述

redis6379.conf、redis6380.conf、redis6381.conf,写入以下命令
```bash
include /root/microservice/myredis/redis.conf
pidfile /var/run/redis_6381.pid
port 6381
dbfilename dump6381.rdb

这里面要做一定的修改:include 是指向myredis目录下得redis.conf路径; pidfile定义当前进程文件;dbfilename 定义当前得服务得持久化文件名(这里记得三个文件对应相应的端口号哈)

接下来重载下三个conf文件(重载前记得查看redis所有进程,先杀死再重载,为了更好的看到效果
在这里插入图片描述
查看效果
用redis-cli打开相应端口的服务,然后输入

info replication

查看每个redis服务状态,发现他们都是master主机形式,是因为我们还没有进行命令设置
在这里插入图片描述
设置两台从机
配置策略:配从不配主,只需要在从机上设置,命令为

slaveof ip port

ip port就是主机得ip 和端口

再看看效果:
在这里插入图片描述
我们发现两台从机已经变成了slave,并且有主机的相关信息,但还有一个问题,就是此时它连接主机的状态是:down。这说明没有连接上主机,经过日志调查,发现报错了:MASTER aborted replication with an error: NOAUTH Authentication required.
这段错误是主机中止了复制,出现错误:没有权限;

报错解决:
从机在配置主机的时候加上主机的密码,尝试过用命令去实现,发现不行,最终的解决方式是在conf文件中加上

masterauth 123456

在这里插入图片描述
从机的配置中加上了主机的密码验证,这样在设置了主机时,主机就能复制信息到从机了

命令改完之后,重新加载下,我们再次看效果,发现主机的连接状态就变成了:up

主机也能看到从机的相关信息了
在这里插入图片描述

我们在主机上写入个键值看看从机能不能收到
在这里插入图片描述

经过测试,我们发现,主机上写入一个值,无论是主从之前的还是之后的,从机都能完整的复制过来,有一点要注意:从机没办法进行写入

到这里为止,我们的主从配置就算入门了。

总结下:
1.设置配置文件
2.命令代码设置主机
3.重新加载

缺点:用命令选择主机服务器的方式有点不太可取,如果服务器一旦挂掉,重启之后它还是指定自己为主机,需要重新指定;

解决:我们解决办法是在conf文件进行指定主机的ip 和端口。

讲到这顺便讲一下主从机制的一些特点

主从特点

一主二仆

主机挂断之后,从机正常,从机不会上位,依然指定的是主机;只是主机的连接状态时:down。待主机恢复正常后,从机指定主机的连接状态为:up

一句话就是:大哥依旧是大哥

薪火相传

上一个slave可以是下一个slave的master,slave同样可以接收其他slave的连接和同步请求;该slave作为链条中的下一个master,可以有效地减轻master的写压力,去中心化风险。
什么意思:就是slave可以发展自己的下线,把自己作为一个master
举个例子:你是公司的研发经理,你下面有三个研发,后来公司扩招,找了20个研发,这时候你就需要有三四个小组长来管理下,你只要对接其中三四个小组长就可以了。剩下的都是小组长的小弟
这么做也有个风险:一旦某个slave宕机了,后面的slave没法备份;无论主机挂了,从机还是从机的小弟都无法进行数据同步

反客为主

有没有想过这么一个问题,如果主机突然挂了,还想让服务正常运行下去,该怎么办么。我们当然有办法,

主要在某一从机中选出一台,然后输入以下命令

slave no one

可以从机变成主机

举例:如果你的经理走了,这时候群龙无首,需要选出一个人来顶替;这就是反客为主的概念了

到这你可能说:前面不是说了,大哥一直是大哥,这里怎么变成反客为主了。我们不要抠字眼,这里反客为主是大哥走了,其他人第题,以前的大哥不影响在你心中的位置

最后来讲下主从复制的远离

复制原理

1.当从连接上主服务器之后,从服务器主服务器发送进行数据同步消息
2.主服务器接受到从服务器发送过来的同步消息,把主服务数据进行持久化,rdb文件,把rdb文件发送 从服务器,从服务器拿到rdb进行读取
3.每次主服务器进行写操作之后和从服务器进行数据同步

未完待续:下一篇我们继续将redis的其他特性

这篇关于redis超详细篇6 redis主从复制(配置主从、薪火相传、反客为主)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/603359

相关文章

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties