热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Redis6中的主从复制架构有什么特点

本篇内容介绍了“Redis6中的主从复制架构有什么特点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学

本篇内容介绍了“Redis6中的主从复制架构有什么特点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Redis6中的主从复制架构有什么特点

主从复制的介绍

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者为主节点(master),后者成为从节点(slave);数据的复制都是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是一个主节点,且一个主节点可以有多个从节点(或者没有从节点),但一个从节点只能有一个主节点。

使用主从复制的好处:读写分离,能够扩展主节点的读能力,给主节点分担压力。容灾恢复,一旦主节点宕机,可以在从节点作为主节点的备份随时可以顶上来。

架构介绍

从节点复制了主节点的数据,复制之后我们就可以做一个读写分离。如果是单节点的话,应用程序的请求都集中在主节点,但有了从节点之后可以承担部分的读压力。主节点就可以做读写操作,而从节点只做读操作。这样便给主节点分担压力了。

Redis主从复制,一主二从架构环境准备

说了那么多概念咱们就开始动手部署Redis的主从复制架构吧,这次我们部署的是一主二从的架构。

#创建文件
mkdir -p /data/redis/master/data
mkdir -p /data/redis/slave1/data
mkdir -p /data/redis/slave2/data

#从节点开启只读模式(默认)
replica-read-only yes

#从节点访问主节点的密码,和requirepass⼀样
masterauth 123456
    
#哪个主节点进⾏复制
replicaof 8.129.113.233 6379

首先创建一个主节点,在data/redis/master/data目录下touch一个redis.conf文件,编辑redis.conf文件

bind 0.0.0.0
port 6379
daemonize yes
requirepass "123456"
logfile "/usr/local/redis/log/redis1.log"
dbfilename "xdclass1.rdb"
dir "/usr/local/redis/data"
appendonly yes
appendfilename "appendonly1.aof"
masterauth "123456"

接着创建从节点1,在data/redis/slave1/data目录下建redis.conf

bind 0.0.0.0
port 6380
daemonize yes
requirepass "123456"
logfile "/usr/local/redis/log/redis2.log"
dbfilename "xdclass2.rdb"
dir "/usr/local/redis/data"
appendonly yes
appendfilename "appendonly2.aof"
replicaof 8.129.113.233 6379
masterauth "123456"

创建从节点2,在data/redis/slave2/data目录下建redis.conf

bind 0.0.0.0
port 6381
daemonize yes
requirepass "123456"
logfile "/usr/local/redis/log/redis3.log"
dbfilename "xdclass3.rdb"
dir "/usr/local/redis/data"
appendonly yes
appendfilename "appendonly3.aof"
replicaof 8.129.113.233 6379
masterauth "123456"

注意:防火墙记得关闭,阿里云服务器记得开放网络安全组。

创建好后就开始启动已经配置好的节点

启动方式:

#启动主
./redis-server/data/redis/master/data/redis.conf
#启动从1
./redis-server/data/redis/slave1/data/redis.conf
#启动从2
./redis-server/data/redis/slave2/data/redis.conf

使用info replication可以查看当前节点的状态

主从复制和读写验证

1.在主节点创建一个key
set name jack
2.在两个从节点测试是否能拿到主节点的数据
get name
3.在从节点set key是失败的,因为从节点只支持读操作

Redis6主从架构-复制读写分离原理解析

主从复制分为两种:一种是主从刚开始连接的时候,进行全量同步;另一种是全同步结束后,进行增量同步。

全量复制:master服务器会开启一个后台的进程用于将Redis的数据生成一个rdb文件,主服务器会缓存所有接受到的来自客户端的写命令,当后台保存进程后,会将rdb文件传递给slave服务器,这时候slave服务器就有了master服务器的数据了。在此之后,master服务器会将在此期间把缓存过来的命令通过redis传输协议发送给slave服务器,然后slave服务器再将这些命令依次用于自己本地上,最终达到数据的一致性

增量复制:主节点会有不断的命令写进来,slave完成初始化后开始工作时主服务器发送写的操作同步到服务器的过程就叫增量复制。增量复制是服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接受并执行收到的写命令。

主从复制有何特点:

主从复制对于主/从 服务器来说都是非阻塞的,所有在同步数据期间都可以正常处理外界的请求,一个主节点可以包含有多个从节点,每个从节点可以接受来自其他从节点的连接。从节点不会让key过期,而是在主节点的key过期删除后,发送删除命令给从节点进行删除。

加速复制:在节点完成重新同步的时候需要在磁盘上创建一个RDB文件,然后加载这个文件来为从服务器发送数据,但如果磁盘的速率比较低呢?这就会导致主节点与从节点的数据不一致。在新版的Redis中,支持无磁盘的复制,直接将RBD文件通过网络发送的形式给从服务器,不在使用磁盘作为中间件。

如果主从连接断开的话,重新连接后可以从中断的地方继续进行复制,而不用重新同步。在2.8版本后,重新同步的这个新特性使用PSYNC命令,而旧的使用SYNC命令

“Redis6中的主从复制架构有什么特点”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程笔记网站,小编将为大家输出更多高质量的实用文章!


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
author-avatar
mobiledu2502911607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有