标签:同步 架构 redis Redis 节点 master slave 数据 主从
搭建主从架构
为什么要搭建主从集群呢?
- 因为使用redis的场景大多都是 ”读多写少“,为了提高读操作的并发能力,需要配置多台redis从节点,接收读操作请求。
- 主节点主要负责写操作。
- 主节点接收写操作,更新redis中数据后,需要及时同步到其他从节点。保证客户端读取到redis集群中任意一台机器上的数据都是相同的(保证数据一致性)。
一般的redis主从集群架构,包含3个节点:一个主节点,两个从节点。
集群搭建好后,如何查看集群的信息呢?
在主节点上执行命令:
INFO replication
测试主写,从读?
可以看到,在主节点上写入数据后,主节点会自动将数据同步到与之相连的从节点上。客户端切换连接redis从节点,可以读到在主节点上写入的数据。
从节点上只能读数据,无法执行写命令。
数据同步原理
1. 全量同步
那master如何判断slave是不是第一次来同步数据呢?
- 通过判断slave的replid与master的replid是否一致,来确定
- 如果slave是master的从节点,slave的offset永远是小于等于master的offset的。master可以通过offset来分析当前slave的数据同步到哪个位置了,还有多少没同步,以此进行后续的增量同步。
简述全量同步过程
- slave节点请求增量同步
- master节点判断replid,发现不一致,拒绝增量同步
- master将完整的内存数据生成RDB(这个过程中,master还会持续接收redis命令),发送RDB文件到slave
- slave清空本地数据,加载master中的RDB
- master将生成RDB期间执行的命令记录在repl_baklog中,并持续将repl_baklog中的命令发送给slave
- slave执行接收到的命令,保持与master之间的数据同步
2. 增量同步
数据同步优化
总结数据同步
标签:同步,架构,redis,Redis,节点,master,slave,数据,主从 来源: https://www.cnblogs.com/paopaolx/p/16456438.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。