Redis主从复制
来自灵魂的拷问:什么是Redis主从复制?
简言之就是:
- 主对外从对内,主可写从不可写
- 主挂了,从不可为主
看下面的图加深下理解:

对,你没看错,Redis主从复制没有动态选举Master节点的能力,主挂了服务就不可以写数据了。仅仅就是增强了应用读数据的并发量同时做数据备份。
一般生产环境会采用 哨兵 或者 Redis Cluster 这种具备Master自动选举的方案,我们学习时还是要掌握主从的原理后,再去更深一步,对于哨兵和Redis Cluster方案感兴趣的话,可以留言告诉我,咱们后面安排上。
主从如何配置
接下来,我们实战一下redis的主从架构配置:
- 主redis无需任何配置
- 从机需要修改redis.conf文件中如下配置项
port 6378 # 如果是使用的一台机器注意端口要与主机不同
# slaveof < masterip > < masterport >
# 表示当前【从服务器】对应的【主服务器】的IP是192.168.10.135,端口是6379。
slaveof 192.168.137.6 6379
卧槽,你是不是想问:这么简单么?没错就是这么无情,但是这种事情一般代码越少,事情越大,实现原理是啥呀?怎么就可以主从复制了呢?
别慌,七哥,带大家好好缕一缕,整完去应付面试绝对是没有问题的。
实现原理
Redis从2.8版本开始,使用PSYNC命令代替SYNC命令来执行复制时的同步操作。因此本文只讲解目前采用PSYNC的同步原理。
PSYNC命令具有完整同步(full resynchronization) 和 部分同步 (partial resynchronization)两种模式:
- 其中完整同步用于处理初次复制情况:完整重同步的执行步骤是通过让主服务器创建并发送RDB文件,以及向从服务器发送保存在缓冲区里面的写命令来进行同步;
- 而部分同步则用于处理断线后重复制情况:当从服务器在断线后重新连接主服务器时,如果条件允许,主服务器可以将主从服务器连接断开期间执行的写命令发送给从服务器,从服务器只要接收并执行这些写命令,就可以将数据库更新至主服务器当前所处的状态。
下图展示了主从服务器在执行部分重同步时的通信过程:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
数据
+关注
关注
8文章
7366浏览量
95184 -
数据库
+关注
关注
7文章
4094浏览量
68695 -
架构
+关注
关注
1文章
537浏览量
26674 -
Redis
+关注
关注
0文章
397浏览量
12287
发布评论请先 登录
相关推荐
热点推荐
Redis主从复制以及主从复制原理
如果发送 ping 命令后,从节点没有收到主节点的 pong 回复或者超时,比如网络超时或者主节点正在阻塞无法响应命令,从节点会断开复制连接,下次定时任务会发起重连。
一文深入Redis主从复制的原理详解
运行 ID 的主要作用是用来识别 Redis 节点。如果使用 ip+port 的方式,那么如果主节点重启修改了 RDB/AOF 数据,从节点再基于偏移量进行复制将是不安全的。所以,当运行 id 变化后,从节点将进行全量复制。也就
谈谈Redis怎样配置实现主从复制?
之前总结过redis的持久化机制:深度剖析Redis持久化机制,持久化机制主要解决redis数据单机备份问题;redis的高可用需要考虑数据的多机备份,多机备份通过
发表于 01-31 11:31
•1069次阅读
mysql主从复制三种模式
MySQL主从复制是一种常见的数据同步方式,它可以实现将一个数据库的更改同步到其他多个数据库的功能。主从复制可以提高数据库的可用性和性能,以及提供故障恢复和数据备份的支持。在MySQL中,有三种
mysql主从复制的原理
MySQL主从复制是一种数据库复制技术,它允许将一个MySQL数据库的更新操作自动复制到其他MySQL数据库上的过程。主要通过MySQL的binlog(二进制日志)和relay log(中继日志)来
mysql主从复制 混合类型的复制
MySQL主从复制是一种常用的数据复制技术,可以实现数据从一个MySQL服务器(主服务器)复制到另一个MySQL服务器(从服务器)。在主从复制中,混合类型的
redis查看主从节点命令
Redis是一种开源的内存数据结构存储系统,常被用作数据库、缓存和消息中间件。在Redis中,可以通过一些命令来查看主从节点的信息,以便进行监控和管理。 Redis
Redis使用重要的两个机制:Reids持久化和主从复制
今天这篇文章,我们一起了解 Redis 使用中非常重要的两个机制:Reids 持久化和主从复制。 我们都知道Redis是一个内存数据库,在学习主从同步之前,我们首先要想到
Redis哨兵模式的自动故障检测与主从切换实战
Redis 主从复制解决了读扩展和数据冗余问题,但主节点故障时需要人工介入切换,这在生产环境中是不可接受的。Sentinel(哨兵)模式在主从架构之上增加了自动故障检测和故障转移能力,是 Re
什么是Redis主从复制
评论