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

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

arduino ide安装详细步骤

​ 大家好,我是程序员小羊! 前言: Arduino IDE 是一个专为编程 Arduino 微控制器设计的集成开发环境,使用起来非常方便。下面将介绍如何在不同平台上安装 Arduino IDE 的详细步骤,包括 Windows、Mac 和 Linux 系统。 一、在 Windows 上安装 Arduino IDE 1. 下载 Arduino IDE 打开 Arduino 官网