Redis主从同步

主从架构

主从架构设计的思路大概如下:

  • 只有一台主服务器,只负责写入数据,不负责读取数据。
  • 多台从服务器,不写入数据,只负责同步主服务器的数据,提供外部程序读取。
  • 主服务器写入数据后,将命令发送到从服务器,使主从数据同步。
  • 应用程序可以读取某一台从服务器的数据,负载均衡。
  • 当某些从服务器瘫痪时,系统影响不大。当主服务器瘫痪时,选举某一台从服务器成为主服务器

Redis主从同步

图中左边的流程是主服务器,而右边的流程为从服务器。
(1)无论如何要先保证主服务器的开启,开启主服务器后,从服务器通过命令或者重启配置项可以同步到主服务器。
(2)当从服务器启动时,读取同步的配置,根据配置决定是否使用当前数据响应客户端,然后发送 SYNC 命令。

当主服务器接收到同步命令的时候,就会执行 bgsave 命令备份数据,但是主服务器并不会拒绝客户端的读/写,而是将来自客户端的写命令写入缓冲区 。从服务器未收到主服务器备份的快照文件的时候,会根据其配置决定使用现有数据响应客户端或者拒绝。

(备注:bgsave命令,是一个异步保存命令,也就是系统将启动另外一个进程,把Redis的数据保存到对应的数据文件中。

bgsave和save命令最大的不同是它不会阻塞客户端的写入,也就是在执行bgsave的时候,允许客户端继续读/写Redis)
(3)当 bgsave 命令被主服务器执行完后,开始向从服务器发送备份文件,这个时候从服务器就会丢弃所有现有的数据,开始载入发送的快照文件。
(4)当主服务器发送完备份文件后,从服务器就会执行这些写入命令。此时就会把bgsave 执行之后的缓存区内的写命令也发送给从服务器,从服务完成备份文件解析,就开始像往常一样,接收命令,等待命令写入。
(5)缓冲区的命令发送完成后,当主服务器执行一条写命令后,就同时往从服务器发送同步写入命令,从服务器就和主服务器保持一致了。而此时当从服务器完成主服务器发送的缓冲区命令后,就开始等待主服务器的命令了。
以上就是Redis主从同步的过程。

只是在主服务器同步到从服务器的过程中,需要备份文件,所以在配置的时候一般需要预留 一些内存空间给主服务器,用以腾出空间执行备份命令。 一般来说主服务器使用50%~65%的内存空间 ,以为 主从复制留下可用的内存空间。

Redis多从机同步机制

如下图所示:

如果出现多台同步,可能会出现频繁等待和频繁操作 bgsave 命令的情况,导致主机在较长时间里性能不佳。

参考资料:

《SSM框架和Redis实现》

点赞
收藏

评论区

加载中...

相关推荐

redis服务器有哪些架构?每个架构的优劣是什么?

一、架构分类1.单主架构:只有一个redis节点,如果这个节点挂了,整个redis服务就不可用,这个不能在生产环境使用,一般是本地开发使用;2.主从架构:一个master一个或者多个slaver,从服务器是主服务器的副本,从服务器也可以

年后腾讯二面,第一个问MySQL主从结构,给我整不会了

一、MySQL一主一从数据库服务器192.168.4.51配置为主数据库服务器数据库服务器192.168.4.52配置为从数据库服务器客户端192.168.4.50测试配置其中192.168.4.51是主服务器,另一台192.168.4.52作为从服务器,通过调取主服务器上的binlog日志,在本地重做对应的库、表,实现与主服务器的数据同步

redis的三种集群方式

redis有三种集群方式:主从复制,哨兵模式和集群。1.主从复制主从复制原理:从服务器连接主服务器,发送SYNC命令;主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;从服务器收到

Linux之sersync数据实时同步

sersync其实是利用inotify和rsync两种软件技术来实现数据实时同步功能的,inotify是用于监听sersync所在服务器上的文件变化,结合rsync软件来进行数据同步,将数据实时同步给客户端服务器。    工作过程:在同步主服务器上开启sersync,负责监听文件系统的变化,然后调用rsync命令把更新的文件同步到目标服务器上,主服务器上

Mongo服务器集群配置——主从复制

MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性;复制还允许您从硬件故障和服务中断中恢复数据。MongoDB复制原理mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。mon

Mysql数据库 主从复制的作用原理

主从的作用1.实时灾备:一台主数据库宕机了,启用从数据库,用于故障切换2.读写分离:主服务器只用于写操作,从服务器只用于读取,支持了更大的并发3.备份:可以解决数据丢失的问题,避免影响业务主从原理1、主库接收到更新命令,执行更新操作,生成binlog2、从库sal