Redis主从复制(反客为主模式 演示示例)——图解版

2024-01-14 00:30

本文主要是介绍Redis主从复制(反客为主模式 演示示例)——图解版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 一、Redis主从复制(反客为主的理解)
    • 二、Redis主从复制配置步骤概述
    • 三、lz虚拟机配置说明
    • 四、Redis主从复制(每台服务器的redis配置文件配置步骤)
      • 1、配置master服务器(即IP为192.168.3.15的6379端口)的配置文件
      • 2、配置slave1服务器(即IP为192.168.3.16的6380端口)的配置文件
      • 3、配置slave2服务器(即IP为192.168.3.17的6381端口)的配置文件
    • 五、Redis主从复制(反客为主演示示例,包含各种宕机情况))
      • 1、分别启动3台服务器的redis服务端,并查看3台服务器的角色信息
      • 2、slave1和slave2分别执行slaveof +master服务器ip+端口命令,查看slave1和slave2角色信息,并查看master角色信息。
      • 4、当master服务器宕机后,在slave1服务器中执行slaveof no one命令,slave2服务器重新挂载到slave1服务器中,查看slave1和slave2的角色。
      • 5、当master服务器宕机重新启动后,在次查看slave1服务器和slave2服务器角色。

一、Redis主从复制(反客为主的理解)

在这里插入图片描述

  • 由上图结构可知,反客为主指一个master服务器同时挂2个salve服务器。当master宕机后,在2个slave服务器的哪一台服务器中执行slaveof no one 命令,哪一台服务器就会升级为master服务器。

二、Redis主从复制配置步骤概述

序号配置作用
1配从(库)不配主(库)配置从服务器不配置主服务器
2从库配置,使用 slaveof 主库IP 主库端口 命令slaveof命令再每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件。
3info replication命令查看主/从复制信息
4slaveof no one命令使当前数据库停止与其他数据库同步,转成主数据库
5拷贝redis.conf文件表示指定配置文件启动redis服务
6开启daemonize yes表示是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。
7指定pid文件名字表示pid文件的路径
8指定IP和端口表示指定服务器IP和端口如果是主机的话bind要改成0.0.0.0,从机不需要(主机一定要修改,否则主从连接失败)
9指定log文件名字表示日志文件路径
10指定dump.rdb名字表示数据库文件路径

三、lz虚拟机配置说明

1、三台虚拟机配置说明:

ip端口说明
192.168.3.15(master)6379redis主服务器
192.168.3.16(slave1)6380redis从服务器
192.168.3.17(slave2)6381redis从服务器

2、关闭三台虚拟机的防火墙,保证三台虚拟机的ip和端口都能互相访问通
在这里插入图片描述

四、Redis主从复制(每台服务器的redis配置文件配置步骤)

1、配置master服务器(即IP为192.168.3.15的6379端口)的配置文件

  • 拷贝redis.conf文件为redis6379.conf,并编辑redis6379.conf文件。如下图:
    在这里插入图片描述

  • 开启daemonize yes,如下图:
    在这里插入图片描述

  • 修改pid文件名字为redis_6379.pid,如下图:
    在这里插入图片描述

  • 指定IP和端口(6379),主机一定要把bind 127.0.0.1要改成0.0.0.0,从机不需要(一定要修改,否则主从连接失败),如下图:

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

  • 修改log文件名字为6379.log,如下图:
    在这里插入图片描述

  • 修改dump.rdb名字为dump6379.rdb,如下图:
    在这里插入图片描述

2、配置slave1服务器(即IP为192.168.3.16的6380端口)的配置文件

  • 拷贝redis.conf文件为redis6380.conf,并编辑redis6380.conf文件。如下图:
    在这里插入图片描述

  • 开启daemonize yes,如下图:
    在这里插入图片描述

  • 修改pid文件名字为redis_6380.pid,如下图:
    在这里插入图片描述

  • 指定IP和端口(6380),slave1从服务器一定也要把bind 127.0.0.1要改成0.0.0.0,因为当master宕机后,需要在slave1服务器中执行slaveof no one命令,从而升级为master服务器(一定要修改,否则主从连接失败)。如下图:

    在这里插入图片描述

    在这里插入图片描述

  • 修改log文件名字为6380.log,如下图:
    在这里插入图片描述

  • 修改dump.rdb名字为dump6380.rdb,如下图:
    在这里插入图片描述

3、配置slave2服务器(即IP为192.168.3.17的6381端口)的配置文件

  • 拷贝redis.conf文件为redis6381.conf,并编辑redis6381.conf文件。如下图:
    在这里插入图片描述

  • 开启daemonize yes,如下图:
    在这里插入图片描述

  • 修改pid文件名字为redis_6381.pid,如下图:
    在这里插入图片描述

  • 指定IP和端口(6381),从主机不需要把bind 127.0.0.1要改成0.0.0.0,从机不需要,如下图:

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

  • 修改log文件名字为6381.log,如下图:
    在这里插入图片描述

  • 修改dump.rdb名字为dump6381.rdb,如下图:
    在这里插入图片描述

五、Redis主从复制(反客为主演示示例,包含各种宕机情况))

1、分别启动3台服务器的redis服务端,并查看3台服务器的角色信息

  • 启动6379端口的master服务器并测试是否连接成功,如下图:

    在这里插入图片描述

  • 启动6380端口的slave1服务器并测试是否连接成功,如下图:
    在这里插入图片描述

  • 启动6381端口的slave2服务器并测试是否连接成功,如下图:
    在这里插入图片描述

  • 输入info replication命令,查看3台服务器的角色信息,由下图可知,3台服务器均为master服务器,如下图:
    在这里插入图片描述

2、slave1和slave2分别执行slaveof +master服务器ip+端口命令,查看slave1和slave2角色信息,并查看master角色信息。

  • 由下图可知,slave1和slave2服务器的角色都为slave,
    在这里插入图片描述
  • 由下图可知,master服务器的角色都为master,并且挂2个从服务器。
    在这里插入图片描述

4、当master服务器宕机后,在slave1服务器中执行slaveof no one命令,slave2服务器重新挂载到slave1服务器中,查看slave1和slave2的角色。

  • 由下图可知,当master宕机后,在slave1服务器中执行slaveof no one命令并且在slave2服务器重新挂载到slave1服务器中,salve1会升级为master服务器。并且可以看到挂载了slave2服务器。
    在这里插入图片描述

5、当master服务器宕机重新启动后,在次查看slave1服务器和slave2服务器角色。

  • 由下图可知,当master重新启动后,master自己单独一套体系,而slave1和slave2服务器单独一套体系,互不影响。
    在这里插入图片描述

这篇关于Redis主从复制(反客为主模式 演示示例)——图解版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定