在很久之前写过一篇 Redis 主从复制原理的简略分析,基本是一个笔记类文章 。
一、什么是主从复制1.1 什么是主从复制主从复制,从名字可以看出,至少需要 2 台 Redis 服务器,一台叫主 Redis 服务器,一台叫从 Redis 服务器,也可以把他们叫做主节点(主 Redis 服务器)从节点(从 Redis 服务器) 。然后把主 Redis 服务器上的数据复制到从 Redis 服务器上,这就是主从复制 。后续也会源源不断的把数据从主节点复制到从节点 。
文章插图
1.2 怎么设置主从复制怎么设置主 Redis 服务器,怎么设置从 Redis 服务器?
比如有 2 台 Redis 服务器,ip 分别为:192.168.1.100 和 192.168.1.101 。
- 第一种方法
设置方法:在 Redis 的配置文件 redis.conf 中配置:replicaof masterip masterport比如将 192.168.1.100 这台服务器设置为主(master)服务器,那么就在服务器 192.168.1.101 的配置文件里设置如下:
replicaof 192.168.1.100 6379然后重启服务器,这样主服务器就是 192.168.1.100,从服务器就是 192.168.1.101 。
- 第二种方法
这种方式如果从 Redis 重启后,主从关系就消失了 。
- 第三种方法
说明:Redis 5.0 后,replicaof 命令已经替换了 slaveof 命令,但是为了兼容 slaveof 还是可以用 。一台主服务器也可以有多台从服务器,从服务器也可以有从服务器 。
二、为什么要主从复制主从复制后就有多份数据,相当于有多个副本,既是备份也是容灾 。
为什么要有主从复制功能?
其实问的就是 Redis 主从复制有什么作用,带来了啥好处 。
- 负载均衡
- 故障恢复
高可用的数据冗余方式 。
- 数据冗余
三、怎么进行主从复制
主从数据同步就是把主服务器生成的 RDB 数据文件复制到从服务器上,然后解析 RDB 文件,在从服务器上生成对应的数据 。或同步相关的命令 。3.1 主从复制同步的演进在 Redis2.8 之前,都是全量数据复制 。也就是说,断线重连后,也是重新全量复制数据 。这种方式把很多原来同步过了的数据又重新同步一次,这种方式的数据同步效率太低 。
在 Redis2.8 之后,增加了部分重同步模式,也就是增加增量数据同步,只同步需要同步的数据 。这就改进了之前的数据同步模式 。
什么时候进行全量数据同步?第一次数据同步时候就进行全量数据同步 。有时主从数据不一致时也需要全量同步 。
什么时候进行增量数据同步?比如断线重连后,就进行增量数据同步 。
3.2 Redis2.8之前复制Redis2.8 之前主从同步有 2 个部分:全量同步,命令传播 。
全量同步:主从节点建立连接,主节点回复后,从节点向主节点发送 SYNC 命令,把从节点服务器状态更新到当前主节点服务器状态 。主节点创建全量数据的 RDB 快照文件,然后发送给从节点,从节点加载 RDB 文件恢复对应的数据 。主节点再继续发送复制过程中积压在缓冲区内的新增命令到从节点,使从节点的数据到达和主节点数据一致 。经验总结扩展阅读
- flinksql读写redis
- 追求性能极致:Redis6.0的多线程模型
- 水银温度计用之前要甩一甩吗 体温计不甩量的体温会怎么样
- spring boot集成redis基础入门
- CentOS 7.9 安装 redis-6.2.0
- Redis实现布隆过滤器解析
- 242的身高可以扣篮吗
- 18-基于CentOS7搭建RabbitMQ3.10.7集群镜像队列+HaProxy+Keepalived高可用架构
- 深入底层C源码 Redis核心设计原理
- Redis高并发分布式锁详解