微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis主从架构

搭建主从架构

为什么要搭建主从集群呢?

  • 因为使用redis的场景大多都是 ”读多写少“,为了提高读操作的并发能力,需要配置多台redis从节点,接收读操作请求。
  • 主节点主要负责写操作。
  • 主节点接收写操作,更新redis中数据后,需要及时同步到其他从节点。保证客户端读取到redis集群中任意一台机器上的数据都是相同的(保证数据一致性)。

一般的redis主从集群架构,包含3个节点:一个主节点,两个从节点。

image

image


image

集群搭建好后,如何查看集群的信息呢?

在主节点上执行命令:

INFO replication

image

测试主写,从读?

image


可以看到,在主节点上写入数据后,主节点会自动将数据同步到与之相连的从节点上。客户端切换连接redis从节点,可以读到在主节点上写入的数据。

从节点上只能读数据,无法执行写命令。

image


数据同步原理

1. 全量同步

image

那master如何判断slave是不是第一次来同步数据呢?
  • 通过判断slave的replid与master的replid是否一致,来确定
  • 如果slave是master的从节点,slave的offset永远是小于等于master的offset的。master可以通过offset来分析当前slave的数据同步到哪个位置了,还有多少没同步,以此进行后续的增量同步。

image


image

简述全量同步过程
  1. slave节点请求增量同步
  2. master节点判断replid,发现不一致,拒绝增量同步
  3. master将完整的内存数据生成RDB(这个过程中,master还会持续接收redis命令),发送RDB文件到slave
  4. slave清空本地数据,加载master中的RDB
  5. master将生成RDB期间执行的命令记录在repl_baklog中,并持续将repl_baklog中的命令发送给slave
  6. slave执行接收到的命令,保持与master之间的数据同步

2. 增量同步

image

数据同步优化

image

总结数据同步

image

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐