概述

  1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。

  2、通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。

    

 

 

  过程:

 

      1:当一个从数据库启动时,会向主数据库发送sync命令,

 

      2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来

 

      3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。

 

      4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。

修改配置文件

  1.配从(库)不配主(库)

  2.从库配置:slaveof 主库IP 主库端口

  3.修改配置文件细节操作

    拷贝多个redis.conf文件

    开启daemonize yes

    Pid文件名字

    指定端口

    Log文件名字

    Dump.rdb名字

  可以使用 [salveof 127.0.0.1 对应的主机端口号]  命令连接

  

 

   

 

   

原理

  Slave启动成功连接到master后会发送一个sync命令

  Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步

  全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。

  增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步,但是只要是重新连接master,一次完全同步(全量复制)将被自动执行

 posted on 2019-12-31 10:33  wnwn  阅读(118)  评论(0编辑  收藏  举报