Redis学习(六) —— 主从同步

时间:2022-05-04 04:39:02

一、CAP原理

分布式系统的节点往往都是分布在不同的机器上进行网络隔离开的,这意味着必然会有网络断开的风险,这个网络断开的场景的专业词汇叫着「网络分区」。

在网络分区发生时,两个分布式节点之间无法进行通信,我们对一个节点进行的修改操作将无法同步到另外一个节点,所以数据的「一致性」将无法满足,因为两个分布式节点的数据不再保持一致。除非我们牺牲「可用性」,也就是暂停分布式节点服务,在网络分区发生时,不再提供修改数据的功能,直到网络状况完全恢复正常再继续对外提供服务。

CAP 原理就是——网络分区发生时,一致性和可用性两难全。

二、最终一致

Redis主从节点是通过异步的方式来同步数据的,所以是不满足一致性的。即使在主从两个节点产生分区,依然满足可用性,因为查询和修改都是在主节点进行。Redis保证最终一致性,就是从节点的数据会努力与主节点的数据保持一致。

三、增量同步与快照同步

增量同步

主节点将修改性指令放到buffer中,然后异步传输给从节点,从节点一遍执行指令,另一边需要告诉主节点执行到哪里。

快照同步

是一种比较耗资源的操作。主节点将当前数据存储到磁盘文件中,然后发送给从节点,从节点读取快照文件中的数据,读取完成后,执行增量同步。