zoukankan      html  css  js  c++  java
  • Redis的master/slave复制

    摘自:Redis的master/slave复制

    Redis的master/slave数据复制方式可以是一主一从或者是一主多从的方式,Redis在master是非阻塞模式,也就是说在slave执行数据同步的时候,master是可以接受客户端的请求的,并不影响同步数据的一致性,然而在slave端是阻塞模式的,slave在同步master数据时,并不能够响应客户端的查询。

    Redis的master/slave模式下,master提供数据读写服务,而slave只提供服务。

    特点:

    1.master可以有多个slave;

    2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构;

    3.主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求;

    相反slave在初次同步数据时则会阻塞不能处理client的请求;

    4.主从复制可以用来提高系统的可伸缩性,我们可以用多个slave 专门用于client的读请求,

    如sort操作可以使用slave来处理。也可以用来做简单的数据冗余;

    5.可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化。

    ---------------------------------------------------------------------------------------------------------

    摘自:redis主从[master、slave]

    主从复制的过程:
    当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令。
    无论是第一次同步建立的连接还是连接断开后的重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存起来。
    后台进程完成写文件后,master就发送文件给slave,slave将文件保存到磁盘上,然后加载到内存恢复数据库快照到slave上。
    接着master就会把缓存的命令转发给slave。
    而且后续master收到的写命令都会通过开始建立的连接发送给slave。
    从master到slave的同步数据的命令和从client发送的命令使用相同的协议格式。
    当master和slave的连接断开时slave可以自动重新建立连接。
    如果master同时收到多个slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。

  • 相关阅读:
    抄来的
    getWindowHandle();
    tcp协议
    同学少年多不贱
    蓝桥 算法训练 最短路
    洛谷P1460 健康的荷斯坦奶牛 Healthy Holsteins
    蓝桥 算法提高 学霸的迷宫
    初等数论 ————拓展欧几里得算法
    CF1037D Valid BFS?
    1053 Path of Equal Weight
  • 原文地址:https://www.cnblogs.com/drizzlewithwind/p/6486937.html
Copyright © 2011-2022 走看看