zoukankan      html  css  js  c++  java
  • redis系列-主从复制

    redis自身提供了主从的机制,通过配置可以实现服务的备份(Master->Slave)。

    配置项

            slaveof <masterip> <masterport>
            masterauth <master-password> <master password=""> //如果master设置了requirepass password       </master>

    复制流程

    1. Slave启动或重新与Master连接时,向Master发送SYNC
    2. Master收到SYNC判断后台是否有正在进行的内存快照保存子进程,没有则启动一个快照保存子进程,有则等待快照保存完成,将快照文件传送给要求同步的Slave
    3. Slave收到快照文件后,清空内存,加载该快照
    4. Master在保存快照过程中,会把改变数据集的命令缓存到一队列中,后续依次发给Slave;在以后的连接未中断过程中,会逐一发送写命令到Slave

    使用注意

    1.通常Master可以配置成只写、不保存,Slave负责对外读、以及持久化(slave-read-only yes)
    2.slave在与Master断开连接或正在同步快照时,通过配置slave可以继续接收读请求或者拒绝请求
    slave-serve-stable-data yes //继续提供服务
    slave-server-stable-data no//不提供服务,返回错误"SYNC with master in progress"
    3.redis没有增量复制,每次新建同步连接都会全量同步快照。slave过多或者网络不稳定导致同步请求多,会增加Master的压力,影响其性能
    4.redis作为缓存比较合适,做为数据库存储,那它的持久化、复制都有缺陷:重启时恢复内存、复制数据都要比较长的时间,出现延迟
    5.Master如果采用AOF持久化,会出现同时写AOF和RDB的情况,响应会受到影响

    本文做为铺垫,用于对搭建redis集群做准备。


  • 相关阅读:
    ASP.NET MVC 以Stream 下载文件
    ITextSharp 初次接触
    Easyui中tree组件实现搜索定位功能及展开节点定位
    lodop 打印控件的使用
    XML IList<T> TO DataSet TO DataTable 相互转换
    JSONToObejct 问题 part 1
    可以动态添加图片的轮播插件
    防止机器注册
    sqlServer 取每组的前几条数据
    log4net 动态设定日志文件名
  • 原文地址:https://www.cnblogs.com/whuqin/p/4981984.html
Copyright © 2011-2022 走看看