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

相关文章

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Redis Pipeline(管道) 详解

《RedisPipeline(管道)详解》Pipeline管道是Redis提供的一种批量执行命令的机制,通过将多个命令一次性发送到服务器并统一接收响应,减少网络往返次数(RTT),显著提升执行效率... 目录Redis Pipeline 详解1. Pipeline 的核心概念2. 工作原理与性能提升3. 核

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命