当前位置: 首页 > news >正文

Redis主从复制和哨兵模式

目录

  • 主从复制
  • 环境配置
  • 哨兵模式

主从复制

是指将一台Redis服务器的数据,复制到其他的Redis服务器,前者称为主节点,后者称为从节点,数据的复制是单向的,只能由主节点到从节点,Master以写为主,slave以读为主

默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点

在这里插入图片描述
主从复制,读写分离!80%的情况下都是在进行读操作!减缓服务器的压力,架构中经常使用!

作用:

  1. 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式
  2. 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复
  3. 负载均衡:在主从复制基础上,配合读写分离,可以由主节点提供服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载,尤其是在读多写少场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量
  4. 高可用(集群)基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础

环境配置

单机多服务:复制三个配置文件,修改对应信息
在这里插入图片描述
主要是修改:
端口
pid名
log文件名
dump.rdb名

更改配置文件

redis79.conf

打开后台运行
在这里插入图片描述
修改日志文件

在这里插入图片描述
修改dump.rdb
在这里插入图片描述

redis80.conf

更改端口
在这里插入图片描述
修改pidfile
在这里插入图片描述
修改logfile

在这里插入图片描述
修改dump

在这里插入图片描述

在这里插入图片描述

redis81.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看进程
在这里插入图片描述

默认情况下,每台Redis服务器都是主节点,一般情况下,只用配置从机就可以了

这里把6379当作主机
6380和6381当作从机

使用slaveof认主机
在这里插入图片描述
在这里插入图片描述

查看主机

在这里插入图片描述

真实的主从配置应该在配置文件中配置,这样的话是永久的,我们这里使用的是命令,暂时的!

修改下面的ip、port、密码即可
在这里插入图片描述

注意:
主机可以写,从机不能写只能读,主机中的所有信息和数据,都会自动被从机保存

主机中读写:
在这里插入图片描述
从机中读写:

在这里插入图片描述

主机断开连接,从机依旧连接到主机的,但是没有写操作,这个时候,主机如果回来了,从机依旧可以直接获取到主机写的信息

如果从机断了,此时主机进行写数据,如果是使用命令行来配置的主从,那么这个从机会变回主机,使用slaveof再变成从机,会立马拿到主机数据

复制原理:
slave启动成功连接到master后会发送一个sync同步命令,master接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步

全量复制:slave服务在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制:master继续将新的所有收集到的修改命令依次传给slave,完成同步

但是只要是重新连接master,一次完全同步(全量复制)将被自动执行,我们的数据一定可以在从机中看到

如果主机断开了连接,我们可以使用slaveof no one让自己变成主机,其他的节点就可以手动连接到最新的这个主节点(手动)

哨兵模式

自动选举老大的模式

主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用,这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式,Redis从2.8开始正式提供了Sentinel(哨兵)架构来解决这个问题

能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行,其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例

然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控,各个哨兵之间还会进行监控,这样就形成了多哨兵模式

在这里插入图片描述

假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为服务器不可用,这个现象称为主观下线,当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover[故障转移]操作,切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线

测试:

我们目前的状态是 一主二从

配置哨兵配置文件sentinel.conf
在这里插入图片描述

启动哨兵
在这里插入图片描述

关闭主机

在这里插入图片描述
根据哨兵日志,可以看到已经有了新的主机

在这里插入图片描述

在这里插入图片描述

此时,如果79端口重新连接,就会自动变成从机

在这里插入图片描述

哨兵模式的优缺点

优点:

  1. 基于主从复制,所有的主从配置优点,全有
  2. 主从可以切换,故障可以转移,系统的可用性更好
  3. 哨兵模式就是主从模式的升级,手动到自动,更加健壮

缺点:

Redis不好在线扩容,集群容量一旦到达上限,在线扩容就十分麻烦
实现哨兵模式的配置其实是很麻烦的,里面有很多选择

http://www.lryc.cn/news/615722.html

相关文章:

  • nginx+lua+redis案例
  • Error: error:0308010C:digital envelope routines::unsupported at new Hash
  • node.js 学习笔记3 HTTP
  • #C语言——刷题攻略:牛客编程入门训练(八):分支控制(二)
  • Linux 虚拟机磁盘空间占满-全面清理方案
  • 【C++详解】红黑树规则讲解与模拟实现(内附红黑树插入操作思维导图)
  • 随机向量正交投影定理(Orthogonal Projection Theorem, OPT)_学习笔记
  • 【Python】常用内置模块
  • 诺基亚就4G/5G相关专利起诉吉利对中国汽车及蜂窝模组企业的影响
  • QT的常用控件说明
  • 【人工智能99问】LLaMA的训练过程和推理过程是怎么样的?(22/99)
  • vuhub Beelzebub靶场攻略
  • 智能体革命:网络安全人的角色重塑与突围指南
  • 医学统计(随机对照研究分类变量结局数据的统计策略2)
  • 用 ES|QL 做搜索从过滤到相关性、再到语义与混合检索
  • WPFC#超市管理系统(5)商品布局、顾客登录、商品下单
  • 机器学习实战·第三章 分类(1)
  • Deep Learning MNIST手写数字识别 Mac
  • 【Elasticsearch入门到落地】16、RestClient查询文档-快速入门
  • Lua的数组、迭代器、table、模块
  • 黑马SpringBoot+Elasticsearch作业2实战:商品搜索与竞价排名功能实现
  • sqli-labs-master/Less-51~Less-61
  • Lua语言变量、函数、运算符、循环
  • 【RocketMQ 生产者和消费者】- ConsumeMessageOrderlyService 顺序消费消息
  • 在windows安装colmap并在cmd调用
  • vue3前端项目cursor rule
  • 常用hook钩子函数
  • 海关 瑞数 失信企业 逆向 分析 后缀 rs
  • 从神经网络语言模型(NNLM)到Word2Vec:自然语言处理中的词向量学习
  • 【Html网页模板】炫酷科技风公司首页