Redis教程——主从复制

在上篇文章我们学习了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.mzph.cn/diannao/7412.shtml

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

相关文章

长难句打卡5.7

In December 2010 America’s Federal Trade Commission (FTC) proposed adding a “do not track” (DNT) option to Internet browsers, so that users could tell advertisers that they did not want to be followed. 2010年12月,美国美国联邦贸易委员会(FTC)提…

在数字化转型的浪潮中,CBDB百数服务商如何破浪前行?

在信息化时代,传统咨询企业面临着数字化转型的挑战与机遇。如何利用数字化技术提升业务效率、增强客户黏性,成为了行业关注的焦点。云南析比迪彼企业管理有限公司(CBDB)作为云南地区的企业咨询服务提供商,率先与百数展…

Springai入门

一、概述 1.1发展历史 1.2大模型 大模型,是指具有大规模参数和复杂计算结构的机器学习模型。这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。其设计目的在于提高模型的表达能力和预测性能,以应对更加复杂的任务和数据&…

虚幻引擎5 Gameplay框架(二)

Gameplay重要类及重要功能使用方法(一) 配置LOG类及PlayerController的网络机制 探索验证GamePlay重要函数、类的执行顺序与含义 我们定义自己的日志,专门建立一个存放自己日志的类,这个类继承自BlueprintFunctionLibrary 然后…

零基础怎么学鸿蒙开发?

对于零基础的学习者来说,掌握鸿蒙开发不仅是迈向新技术的第一步,更是开拓职业道路的重要机遇。随着鸿蒙系统在各行各业的应用逐渐扩展,对于掌握这一项技术的开发人员需求也随之增长。下文将为大家提供针对零基础学习鸿蒙开发的逻辑&#xff0…

提高曝光率与点击率:海外KOL推广与社交媒体算法的完美结合

在当今数字化时代,社交媒体已经成为了企业和品牌推广的重要渠道之一,海外KOL也在各个领域拥有着庞大的粉丝群体和影响力。然而,想要在众多内容中脱颖而出,提高推广内容的曝光率和点击率,仅仅依靠KOL的影响力是不够的&a…

论文阅读-THE GENERALIZATION GAP IN OFFLINE REINFORCEMENT LEARNING(ICLR 2024)

1.Motivation 本文希望比较online RL、offline RL、序列决策和BC等方法的泛化能力(对于不同的初始状态、transition functions、reward functions,现阶段offline RL训练的方式都是在同一个环境下的数据集进行训练)。实验发现offline的算法相较于online算法对新环境…

特别提醒:2024年软考连考时间再次调整!

近期,辽宁省发布了今年5月软考考试安排,有以下变化: 高级论文单独考试(2小时),之前是案例和论文一起考,案例剩下的时间可以给论文用,现在是综合和案例一起考,综合剩下的…

菜鸡学习netty源码(一)——ServerBootStrap启动

1.概述 对于初学者而然,写一个netty本地进行测试的Server端和Client端,我们最先接触到的类就是ServerBootstrap和Bootstrap。这两个类都有一个公共的父类就是AbstractBootstrap. 那既然 ServerBootstrap和Bootstrap都有一个公共的分类,那就证明它们两个肯定有很多公共的职…

Redis集群.md

Redis集群 本章是基于 CentOS7 下的 Redis 集群教程,包括: 单机安装RedisRedis主从Redis分片集群 1.单机安装Redis 首先需要安装Redis所需要的依赖: yum install -y gcc tcl然后将课前资料提供的Redis安装包上传到虚拟机的任意目录&#xf…

如何在CentOS部署青龙面板并实现无公网IP远程访问本地面板

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java双亲委派机制

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 概述 Java程序在运…

一起长锈:4 默认不可变的变量绑定与引用(从Java与C++转Rust之旅)

讲动人的故事,写懂人的代码 故事梗概:在她所维护的老旧Java系统即将被淘汰的危机边缘,这位在编程中总想快速完事的女程序员,希望能转岗到公司内部使用Rust语言的新项目组,因此开始自学Rust;然而,在掌握了Rust编程知识之后,为了通过Rust项目组的技术面试,使得转岗成功而…

sql优化思路

sql的优化经验 这里解释一下SQL语句的优化的原理 1.指明字段名称,可以尽量使用覆盖索引,避免回表查询,因此可以提高效率 2.字面意思,无需过多赘述。索引就是为了提高查询效率的。 3.图中两条sql直接可以使用union all 或者 uni…

羊大师分解,羊奶不为人知的健康奇迹

羊大师分解,羊奶不为人知的健康奇迹 羊奶是一种营养丰富的食品,拥有许多不为人知的健康益处。 益智健脑:羊奶中含有较高的钙、蛋白质、氨基酸、维生素、矿物质、无机盐、核酸等营养成分,这些都对大脑发育及增强智力有很大帮助。…

MySQL mydumper工具

目录 1. mydumper介绍 2. mydumper参数解释 3. 备份例子 3.1 备份全库(未包含其他) 3.2 备份全库(包含其他) 3.3 备份指定数据库(-B或--database) 3.4 导出指定表(-T或--tables-list) 3.5 只导出表结构,不导出表数据(-d或--no-data) 3.6 只导出表数据&#…

包管理工具npm的安装和使用

包管理工具 管理 包 的应用软件,可以对 包 进行下载 安装,更新,删除,上传 等操作。 借助包管理工具,可以快速开发项目,提升开发效率。 包管理工具是一个通用的概念,很多编程语言都有包管理工…

likeshop多商户单商户商城_likeshop跑腿源码_likeshop物品租赁系统开源版怎么配置小程序对接?

本人是商业用户所以能持续得到最新商业版,今天我说下likeshop里面怎么打包小程序,大家得到程序时候会发现它有admin目录 app目录 server目录 这三个目录分别是做什么呢? 1.admin目录 下面都是架构文件使用得是Node.js打包得,至于…

管道通信与Linux命令的执行-(读书笔记-十三)

|前一个命令的输出作为后一个命令的输入。 在Linux中,|符号是一个管道符号,用于将前一个命令的输出作为后一个命令的输入。这种机制允许你将多个命令组合在一起,以执行复杂的操作。下面是一些基本的例子: 查看当前目录下的文件列…

数据互通新纪元,企业如何实现系统无缝对接?

一、客户介绍 某文化发展有限公司,是一家在二次元文化领域深耕的领先企业,自成立以来,始终致力于为广大二次元爱好者提供丰富多样的正版衍生品和独特的文化体验。作为一家专注于二次元周边产品的公司,该公司拥有全面的产品线&…