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文章
7193浏览量
89818 -
数据库
+关注
关注
7文章
3855浏览量
64797 -
架构
+关注
关注
1文章
520浏览量
25573 -
Redis
+关注
关注
0文章
379浏览量
10982
发布评论请先 登录
相关推荐
Redis主从复制以及主从复制原理
![<b class='flag-5'>Redis</b><b class='flag-5'>主从复制</b>以及<b class='flag-5'>主从复制</b>原理](https://file.elecfans.com/web1/M00/88/95/pIYBAFyHXwCAILGKAAAiW61aa18545.png)
一文深入Redis主从复制的原理详解
![一文深入<b class='flag-5'>Redis</b><b class='flag-5'>主从复制</b>的原理详解](https://file.elecfans.com/web1/M00/DE/58/o4YBAGAbrSiAHEljAAApXnavpYI746.png)
谈谈Redis怎样配置实现主从复制?
mysql主从复制三种模式
mysql主从复制的原理
mysql主从复制 混合类型的复制
redis查看主从节点命令
Redis使用重要的两个机制:Reids持久化和主从复制
![<b class='flag-5'>Redis</b>使用重要的两个机制:Reids持久化和<b class='flag-5'>主从复制</b>](https://file1.elecfans.com/web3/M00/02/CB/wKgZO2diNaKAJVbQAABEXbLdn00455.png)
评论