zoukankan      html  css  js  c++  java
  • Redis主从复制

    一、Redis的Replication

        优点:读写分离  

        下面的列表清楚的解释了Redis Replication的特点和优势。
        1). 同一个Master可以同步多个Slaves。
        2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。因此我们可以将Redis的Replication架构视为图结构。
        3). Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
        4). Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。
        5). 为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高。
        6). Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。
        
    二、Replication的工作原理

        在Slave启动并连接到Master之后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。
        如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。

     master保存RDB文件是通过一个子进程进行的,所以master依然可以处理客户端请求而不被阻塞,但这也导致了在保存RDB文件期间,“键空间”可能发生变化(譬如接收到一个客户端请求,执行"set name diaocow"命令),因此为了保证数据同步的一致性,master会在保存RDB文件期间,把接受到的这些可能变更数据库“键空间”的命令保存下来,然后放到每个slave的回复列表中,当RDB文件发送完master会发送这些回复列表中的内容,并且在这之后,如果数据库发生变更,master依然会把变更的命令追加到回复列表发送给slave,这样就可以保证master和slave数据的一致性!

    三、如何配置Replication

    1、临时

    在Slave_B服务器上执行命令:
    slaveof 127.0.0.1 6379
    上面的方式只是保证了在执行slaveof命令之后,B成为了A的slave,一旦服务(B)重新启动之后,他们之间的复制关系将终止。
    2、永久:
    修改slave的redis.conf
    slaveof ip port   --设置master的ip和端口
     
    如果主数据库设置了密码,需要在从数据的配置文件中通过masterauth参数设置主数据库的密码。

    四、redis主从复制注意事项

    如果你使用主从复制,那么要确保master激活了持久化,或者 确保它不会在宕掉后自动重启。因为slave是master的完整备份,因此如果master通过一个空数据集重启,slave也会被清掉。

    参考:http://www.cnblogs.com/stephen-liu74/archive/2012/02/23/2364717.html
    其他资料:http://blog.csdn.net/pi9nc/article/details/17735653

  • 相关阅读:
    JavaScript 为字符串添加样式 【每日一段代码80】
    JavaScript replace()方法 【每日一段代码83】
    JavaScript for in 遍历数组 【每日一段代码89】
    JavaScript 创建用于对象的模板【每日一段代码78】
    html5 css3 新元素简单页面布局
    JavaScript Array() 数组 【每日一段代码88】
    JavaScript toUTCString() 方法 【每日一段代码86】
    位运算
    POJ 3259 Wormholes
    POJ 3169 Layout
  • 原文地址:https://www.cnblogs.com/sysout/p/5444702.html
Copyright © 2011-2022 走看看