1、 主从模式

在(1)中介绍了主从模式主要是一台主服务器与多台从服务器,从服务器的数据与主服务器的数据相同,为主服务器分担访问压力。

主从模式有两个特点:第一个是主从的权限不同,第二个是主从数据相同。这两个特点中主从数据相同是保证数据的一致性,这点是最重要的,主从的权限不同也是为了保障数据的一致性。假设主从权限一致都可以进行读写,这时一个客户端访问服务器A,将数据a1的值该为了1,同时又有一个客户端访问服务器B,将数据a1的值改为了2。这时就会出现在同一个集群里数据a1的值不一致的情况。

解决数据一致性的方式有很多,主从模式的解决方式是禁止其他服务器的写权限,只允许一台主服务器进行写操作,然后主服务器再将写的数据同步给从服务器。

2、 redis主从模式的实现方式

想要实现主从模式很简单,只需要实现数据同步便可。数据同步分为两个部分:存量数据同步和增量数据同步。

存量数据

存量数据即当前数据库中存储的数据,在介绍其同步方式的时候需要先介绍一下持久化。

持久化

redis是一个内存数据库,但是将数据存储在内存中有一个问题:当程序停止后,内存中的数据便没有了。这样会导致你重启一下数据库,结果数据丢了。这样肯定不行,于是需要持久化,即在数据库关闭前将数据写到磁盘上,数据库启动时把数据从磁盘上加载到内存。

持久化即将内存中的数据写到磁盘中,这时再来看存量数据的同步就很简单了只需要将持久化产生的文件传到从服务器,让从服务器从中加载数据便可。

增量数据

增量数据即当前时间过后新添到数据库的数据。这一部分数据的同步很简单,这些数据都是通过写操作添加到数据库中的,所以只需要在发生了写操作的时候,同时将这个操作发送给从数据库,并让从数据库执行该命令便可。

redis数据同步示意图如下:

redis集群 docker redis集群数据一致性_数据