Redis教程——主从复制

news2024/11/24 3:19:33

在上篇文章我们学习了Redis教程——管道,这篇文章学习Redis教程——主从复制。

主从复制

为了数据更加安全可靠,在实际的项目中,肯定是有多个Redis服务,主机Redis以写为主,从机Redis以读为主,当主机Redis数据变化时,自动将新的数据异步同步到其它从机Redis中,也就是主从复制,其原理如下:

主从复制优势:

  • 实现了读写分离,更好地提高Redis的性能;

  • 容灾恢复;

  • 数据备份;

  • 水平扩容支撑高并发;

为了方便演示,这里我们准备了三台服务器并安装了Redis,没服务器的可以使用VMware虚拟机,主从关系如下图所示:

注意:服务器之间必须相互ping通和必须放行Redis的端口,如下图所示:

这里Redis端口都是6379,大家可以根据需求,调整Redis的端口。

在开始之前,我们先初步配置Redis,redis.conf配置如下所示:

daemonize yes        # 开启Redis
bind 127.0.0.1        # 注释该行
protected-mode no       # 允许外界连接
requirepass 密码              # 为Redis设置密码
dir /myRedis       # 指定当前工作目录
logfile "/myRedis/6379.log"  # Redis日志

实现主从

主机Redis一般情况下都会设置登录密码,那么从机Redis需要配置masterauth来设置校验密码,否则主机Redis会拒绝从机Redis的访问请求。在实现主从之前,首先在从机Redis的redis.conf配置中添加如下:

masterauth "123456"

配置完成后,执行如下命令查看主从关系和配置信息,

info replication   # 查看主从关系和配置信息
keys *      # 查看Redis数据库的数据所有键

如下图所示:

可以看出现在还没任何主从关系,而且Redis数据库没任何数据。

接下来我们将使用命令行和配置的方式实现主从复制。

命令实现主从

使用slaveof命令实现主从,其配置语法格式如下:

slaveof 主机RedisIP 主机Redis端口

示例代码如下:

slaveof 47.119.21.164 6379

运行结果如下:

可以发现,当执行完命令后,47.119.21.164就变为了主机,175.178.108.75就变为了从机。

当主机Redis拥有读写操作权限,从机Redis只有读操作权限,如下图所示:

当某个Redis服务变为从机后,会立即复制主机Redis中的数据,如下图所示:

注意:使用命令行实现主从后,当从机Redis断开连接后,主从关系也会断开。如下图所示:

配置实现主从

使用replicaof配置从机Redis,其配置语法格式如下:

replicaof 主机RedisIP 主机Redis端口

示例代码如下:

replicaof 47.119.21.164 6379

如下图所示:

接下来我们依次启动主从Redis即可,当主机Redis执行写操作后,从机Redis立刻复制,如下图所示:

注意:

  • 当从机Redis断开连接后,主机Redis执行了写操作,断开连接的从机Redis重新连接,从机Redis会立刻复制主机Redis的数据,实现数据同步;

  • 当主机Redis关闭后,从机Redis不会变为主机;

关闭主从

使用slaveof no one命令使当前数据库停止与其他数据库的同步,实现从机Redis变为主机Redis。如下图所示:

注意:如果是配置实现主从的话,从机Redis重启后,又会重新建立主从关系。

好了,Redis教程——主从复制就讲到这里了,下篇文章我们学习Redis教程——哨兵监控。

公众号:白巧克力LIN

该公众号发布Python、数据库、Linux、Flask、Django、自动化测试、Git、算法、前端、服务器等相关文章!

- END -

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1647875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么年代了,还在拿考勤说事

最近,看到了某公司的一项考勤规定:自然月内,事假累计超过3次或者累计请假时间超过8小时的,不予审批,强制休假的按旷工处理。 真的想吐槽,什么年代了,还在拿考勤说事,这是什么公司、什…

国内游戏公司Q1净利润大增40%以上,神州泰岳增幅65.62%

易采游戏网5月7日消息,近日多家国内知名游戏公司公布了其2024年第一季度的财务报告,其中净利润大增40%以上的数据引起了市场的广泛关注。这一业绩表现不仅远超市场预期,也再次证明了国内游戏行业的强劲增长势头。 据了解,这些游戏…

react【实用教程】 搭建开发环境(2024版)Vite+React (官方推荐)

以项目名 reactDemo为例 1. 下载脚手架 在目标文件夹中打开命令行 npm create vite2. 安装项目依赖 cd reactDemo npm i若安装失败,则修改下载源重试 npm config set registry https://registry.npmmirror.com3. 启动项目 npm run dev4. 预览项目 浏览器访问 http…

vue 百度地图点击marker修改marker图片,其他marker图片不变。

直接上代码 marker.name tag;marker.id i; //一定要设置id,我这里是设置的循环key值,要唯一性。map.addOverlay(marker);let pointAIcon2 new BMapGL.Icon(require("../xxxxx.png"), new BMapGL.Size(36, 52));let pointAIcon1 new BMapGL.I…

翔云优配官网美股市场分析问界回应M7事故四大疑问

问界再次新M7 Plus山西高速事故。 4月26日下午,山西运城曾有一辆问界新M7 Plus车辆(以下简称“事故车辆”)在高速行驶时和一辆高速洒水车追尾,碰撞后车辆起火,造成三人遇难,该事故引发了广泛关注。 翔云优配以其专业的服务和较低的管理费用在市场中受到不少关注。该平台提供了…

管理能力学习笔记九:授权的常见误区和如何有效授权

授权的常见误区 误区一:随意授权 管理者在授权工作时,需要依据下属的能力、经验、意愿问最自己:这项工作适合授权给Ta做吗?如果没有,可以通过哪些方法进行培训呢? 误区二:缺乏信任 心理暗示…

Photoshop中选区工具的应用

Photoshop中选区工具的应用 前言Photoshop中选区工具的基本操作创建选区的工具及方法选择、取消、隐藏选区选区的增加、减少选区的应用变换扩大选取与选取相似 Photoshop中采用快速选择工具来创建选区Photoshop中采用色彩范围命令来创建选区Photoshop中采用快速蒙版来创建选区P…

UV胶是什么材料制成的?

UV胶是一种特殊的胶水,由丙烯酸酯单体、活性稀释剂、光引发剂、助剂等材料制成的。它是指在紫外线照射下能够迅速固化的胶水。UV胶的主要成分是丙烯酸酯单体,它在没有紫外线照射时是液体状态,但一旦受到紫外线照射,就会迅速发生聚…

电脑如何查看一段时间内是否被人使用过?

前言 有时候我们可能会担心别人未经许可使用我们的电脑。为了确保自己不在场时电脑是否被使用过,以下两种方法可能会帮到你 第一种方法 WinX打开事件查看器。像WinX能快速打开很多东西,比如安装的应用(可以进行软件的删除),设备管理器&…

生成requirements.txt文件

前言 对于Python项目,生成和使用requirements.txt是十分必要的。通过requirements.txt可以一次性保存和安装项目所需要的所有库。尤其是在复现github上的实验代码时。 方法1 常用的命令 pip freeze > requirements.txt然而这种方法并不好用,有时会…

影响项目成功的六个“致命”错误

项目经理作为项目的负责人,肩负着巨大的责任和挑战。他们需要具备专业知识、出色的综合管理能力以及敏锐的洞察力,以便在项目执行过程中及时关注项目动态,处理好各种问题,并避免那些可能影响项目实施的致命错误。 一、缺乏明确的…

社交媒体数据恢复:华为畅连

尊敬的用户您好,以下是关于社交软件华为畅连的聊天记录数据恢复教程。在华为手机中,我们可以通过华为云服务和第三方软件来恢复删除的聊天记录。以下是详细的步骤: 第一步:登录华为云服务 请在您的华为手机上找到并打开“云服务”…

Python实用记录(十六):PyQt/PySide6联动VSCode便捷操作指南

文章目录 一、安装vscode和配置pyside6环境二、安装vscode扩展三、扩展配置编辑四、编辑运行 一、安装vscode和配置pyside6环境 这一步默认已经通过了 二、安装vscode扩展 三、扩展配置编辑 四个地方需要修改;rcc路径、uic路径、designer.exe路径 uic.exe 用于将…

libcity笔记:libcity/utils/utils.py

1 get_logger 2 set_random_seed def set_random_seed(seed):"""重置随机数种子Args:seed(int): 种子数"""random.seed(seed)#设置 Python 内置的随机数生成器的种子np.random.seed(seed)#设置 NumPy 的随机数生成器的种torch.manual_seed(see…

三大国产中间件厂商

1、东方通 东方通:国产中间件整体市场领导者 1.1、概述 东方通是中国中间件的开拓者和领导者、国内大安全及行业信息化解决方案提供商。 以**“安全+”、“数据+”、“智慧+”** 三大产品体系为基础,为客户提供中间件、网络信息安全、行业数字化转型、智慧应急四大板块产品及…

【前端】HTML实现个人简历信息展示页面

文章目录 前言一、 综合案例:个人简历信息展示页面 前言 这篇博客仅仅是对HTML的基本结构进行了一些说明,关于HTML的更多讲解以及CSS、Javascript部分的讲解可以关注一下下面的专栏,会持续更新的。 链接: Web前端学习专栏 下面我…

【深度学习】实验1 波士顿房价预测

波士顿房价预测 代码 import numpy as np import matplotlib.pyplot as pltdef load_data():# 1.从文件导入数据datafile D:\Python\PythonProject\sklearn\housing.datadata np.fromfile(datafile, sep )# 每条数据包括14项,其中前面13项是影响因素&#xff0c…

企业微信hook接口协议,ipad协议http,客户群发送任务,获取要发送的客户群列表

客户群发送任务,获取要发送的客户群列表 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信 请求示例 {"uuid": "1688853790533324","id":1101292747044333637, //群发任务id"keyword…

Learning C# Programming with Unity 3D

作者:Alex Okita 源码地址:GitHub - badkangaroo/UnityProjects: A repo for all of the projects found in the book. 全书 686 页。

自动获得IPv4地址:概念、原理、应用与未来趋势

随着互联网的飞速发展,IP地址作为设备在网络中的唯一标识,扮演着越来越重要的角色。IPv4地址,作为目前主流的IP地址类型,其分配与获取方式对于网络设备的连通性和网络管理的效率具有决定性影响。虎观代理小二将带大家一起探讨“自…