刚接触到Redis,首先对Redis有一个初步的了解。

  开源,免费,遵守BSD协议,key-value数据库。

  可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。

  多种key-value类型的数据。

  主从模式的数据备份。

  高性能读写。

  redis所有操作都是原子性的,单个操作的原子性可以通过multi和exec指令包起来完成多个操作的原子性。

  一个key可以存储很大,可以达到1gb,不像memcached只能保存1mb的数据。

  主要缺点是数据库容量受物理内存的限制,不能作海量数据的高性能读写。

  主从同步,又叫主从复制,包括全量同步和增量同步。

  一.全量同步

  全量复制一般发生在slave(从服务器)初始化阶段,这时slava需要将master上所有的数据都复制一份,步骤如下:

  1.slave从服务器连接主服务器,并发送sync命令。

  2.主服务器接收到sync命令之后,开始执行bgsave命令(后台异步保存数据到磁盘并生成RDB文件)并使用缓冲区记录此后执行的所有写命令。

  3.主服务器完成bgsave后,向所有服务器发送快照文件(生成的RDB文件),并在发送期间继续记录被实行的写命令。

  4.从服务器接收到快照文件后,丢弃所有旧数据,载入收到的快照(RDB)。

  5.主服务器快照发送完毕后,开始向从服务器发送缓冲区中的写命令。

  6.从服务器完成对快照的载入,开始接收命令,并执行来自主服务器缓冲区的写命令。

  全量同步结束。

  

  二.增量同步

  Redis增量同步是指从服务器初始化后,正常工作时,master主服务器发生的写操作同步到slave从服务器的过程。主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。

  增量同步完成。

  三.主从同步策略

  主从刚连接时,进行全量同步;全量同步结束后,进行增量同步。如果有需要,salve在任何时候都可以发起全量同步。redis总的策略时,首先会尝试增量同步,如果不成功,会进行全量同步。

Redis——主从同步原理的更多相关文章

  1. Redis主从同步原理-SYNC【转】

    和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,下图为级 ...

  2. Redis主从同步原理-PSYNC【转】

    Reids复制数据主要有2种场景: 1. 从服务器从来第一次和当前主服务器连接,即初次复制 2. 从服务器断线后重新和之前连接的主服务器恢复连接,即断线后重复制   对于初次复制来说使用SYNC命令进 ...

  3. Redis主从同步分析(转)

    一.Redis主从同步原理 1.1 Redis主从同步的过程 配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接 ...

  4. 15.6,redis主从同步

    redis主从同步 原理:1. 从服务器向主服务器发送 SYNC 命令.2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下来执行的所有写命令.3 ...

  5. Redis主从同步分析

    一.Redis主从同步原理1.1 Redis主从同步的过程配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接断开 ...

  6. Linux - redis主从同步

    目录 Linux - redis主从同步 环境准备 配置主从同步 测试写入数据,主库写入数据,检查从库数据 手动进行主从复制故障切换 Linux - redis主从同步 原理: 从服务器向主服务器发送 ...

  7. 04 Redis主从同步

    redis主从同步 原理:1. 从服务器向主服务器发送 SYNC 命令.2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下来执行的所有写命令.3 ...

  8. redis 主从同步

    修改redis.conf配置文件 vi redis.conf 在编辑模式下 输入  /slaveof 来搜索 将slaveof启用 即 将#删除 依次配置所有 slave 并将进程 kill 掉 重启 ...

  9. redis主从同步故障切换及集群配置

    一.redis是一中高性能的缓存数据库, 原理:1. 从服务器向主服务器发送 SYNC 命令.2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下 ...

随机推荐

  1. 2016弱校联盟十一专场10.2 Longest Increasing Subsequence

    这个dp题很有学问,我也是照着标称写的 还需要学习 补: if(order[i] < order[i-1]) pre[j] += now[j]; 这句的解释 首先order表示的是每个数字排序之 ...

  2. 【CJOJ P2226】[省常中2011S4] 圣诞节

    Description 圣诞节到了,FireDancer准备做一棵大圣诞树.下图为圣诞树的一个简单结构. 这棵树被表示成一组被编号的结点和一些边的集合.结点从1到n编号.树的根永远是1.每个结点都有一 ...

  3. 【BZOJ3262】陌上花开(树套树)

    [BZOJ3262]陌上花开(树套树) 题面 对于权限题,我这种苦逼肯定是从别的OJ上搞的对不对??? CJOJ 洛谷 Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味 ...

  4. POJ 1791 Heavy Transportation(最大生成树)

    题面 Background Hugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand ...

  5. CDQ 分治算法模板

    CDQ分治 1.三维偏序问题:三维偏序(陌上花开) #include<bits/stdc++.h> #define RG register #define IL inline #defin ...

  6. [Luogu3066][USACO12DEC]逃跑的BarnRunning Away From…

    题面 题目描述 给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个. 输入格式: Line 1: 2 integers, N and L (1 <= N <= 2 ...

  7. [BZOJ1061] [Noi2008] 志愿者招募 (费用流)

    Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难 题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能 ...

  8. js命名中的关键字整理

  9. js备战春招の四のdevtool中各种错误、调试的使用技巧

    try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块. JavaScript 语句 try 和 catch 是成对出现的. ...

  10. C语言引用另一个源文件中定义的数组

    C语言中是可以引用另外一个源文件的全局数组的,但是不能引用局部数组. 引用方式举例如下: 设a.c文件有有数据定义 int  array1[10]; 现有b.c文件中想访问a.c中的array1数组 ...