redis全量复制和部分复制简介
2016-05-30 22:25
537 查看
基本概念:
全量复制和部分复制都是围绕着redis主从复制展开讨论,这里不讨论概念性的理论,只讨论大家比较关心的几个点。
有兴趣深入研究的同学,可以参考
a) 官网http://redis.io/topics/replication
b)
浅析redis复制
1. redis什么时候会发生全量复制?
a) redis slave首启动或者重启后,连接到master时
b) redis slave进程没重启,但是掉线了,重连后不满足部分复制条件
2. redis什么时候会发生部分复制?
先来看部分复制需要的条件
a) 主从的redis版本>=2.8
b) redis slave进程没有重启,但是掉线了,重连了master(因为slave进程重启的话,run id就没有了)
c) redis slave保存的run id与master当前run id一致 (注:run id并不是pid,slave把它保存在内存中,重启就消失)
d) redis slave掉线期间,master保存在内存的offset可用,也就是master变化不大,被更改的指令都保存在内存
3. redis进程重启后会发生全量复制还是部分复制?
a) master重启时,run id会发生变化
b) slave重启时,run id会丢失
答:很显然,会发生全量复制,因为部分复制的条件之一run id已经不能满足
4.当全量复制或者同步复制完毕,增量是如何更新到slave的?
答:通过流式的命令更新,此时master就是slave的client,这样去理解。
5. run id如何查看?
答:通过info server命令查看
End;
全量复制和部分复制都是围绕着redis主从复制展开讨论,这里不讨论概念性的理论,只讨论大家比较关心的几个点。
有兴趣深入研究的同学,可以参考
a) 官网http://redis.io/topics/replication
b)
浅析redis复制
1. redis什么时候会发生全量复制?
a) redis slave首启动或者重启后,连接到master时
b) redis slave进程没重启,但是掉线了,重连后不满足部分复制条件
2. redis什么时候会发生部分复制?
先来看部分复制需要的条件
a) 主从的redis版本>=2.8
b) redis slave进程没有重启,但是掉线了,重连了master(因为slave进程重启的话,run id就没有了)
c) redis slave保存的run id与master当前run id一致 (注:run id并不是pid,slave把它保存在内存中,重启就消失)
d) redis slave掉线期间,master保存在内存的offset可用,也就是master变化不大,被更改的指令都保存在内存
3. redis进程重启后会发生全量复制还是部分复制?
a) master重启时,run id会发生变化
b) slave重启时,run id会丢失
答:很显然,会发生全量复制,因为部分复制的条件之一run id已经不能满足
4.当全量复制或者同步复制完毕,增量是如何更新到slave的?
答:通过流式的命令更新,此时master就是slave的client,这样去理解。
5. run id如何查看?
答:通过info server命令查看
End;
相关文章推荐
- redis安装问题小结
- 使用 Redis 和 Python 构建一个共享单车的应用程序
- Redis偶发连接失败案例实战记录
- Redis中实现查找某个值的范围
- win 7 安装redis服务【笔记】
- redis的hGetAll函数的性能问题(记Redis那坑人的HGETALL)
- Redis和Memcached的区别详解
- 分割超大Redis数据库例子
- Redis总结笔记(一):安装和常用命令
- Redis sort 排序命令详解
- 用Redis实现微博关注关系
- Redis实现信息已读未读状态提示
- redis中修改配置文件中的端口号 密码方法
- 在Ruby on Rails上使用Redis Store的方法
- 深入mysql主从复制延迟问题的详解
- mysql 5.6.14主从复制(也称mysql AB复制)环境配置方法
- Redis和Memcache的区别总结
- MySQL中主从复制重复键问题修复方法
- 在Node.js应用中使用Redis的方法简介
- Redis服务器的启动过程分析