目录

技术难点一:

技术难点二:


更多技术交流:https://github.com/singgel

源码地址:https://github.com/leonchen83/redis-replicator

技术难点一:

java伪装的slave从master获取的数据是redis protocol下的二进制数据,分为

1.RDB数据

2.PSYNC增量数据

Jedis单点有socket的预留接口方法sendCommand,问题,JedisCluster没有这个接口

解决:

1.将二进制数据直接用过CRC16获取到slot

2.根据slot对应的node

3.根据node在获取到Jedis的单点Client

以上同时要兼顾到整个cluster的连接池,不能反复的去创建connection

技术难点二:

在做压测的时候,1WOPS时出现slave,只接收了一部分数据,然后掉线

1.java的slave在dump到本地之后的数据,even处理阻塞

2.master的slave的alive时间设置太短

解决:

replicator参数里面有一个选线(Replicator)r.getConfiguration().setDiscardRdbEvent(true);

设置后rdb文件的解析过程将被忽略,更新offset标志位拉取同步最新的command

网上开源的

https://github.com/smartxing/redis-replicator

1 当启动一个slave node的时候,它会发送一个PSYNC命令给master node
2 如果这是slave node重新连接master node,那么master node仅仅会复制给slave部分缺少的数据; 否则如果是slave node第一次连接master node,那么会触发一次full resynchronization
3 开始full resynchronization的时候,master会启动一个后台线程,开始生成一份RDB快照文件,同时还会将从客户端收到的所有写命令缓存在内存中。RDB文件生成完毕之后,master会将这个RDB发送给slave,slave会先写入本地磁盘,然后再从本地磁盘加载到内存中。然后master会将内存中缓存的写命令发送给slave,slave也会同步这些数据。
4 slave node如果跟master node有网络故障,断开了连接,会自动重连。master如果发现有多个slave node都来重新连接,仅仅会启动一个rdb save操作,用一份数据服务所有slave node。

什么时候发生全量同步,什么时候发生增量同步。 比如做数据迁移的时候需要考虑一下,如果在数据迁移中发生了重连,全量rdb重新会同步一份

1.redis什么时候会发生全量复制

a) redis slave首启动或者重启后,连接到master时
b) redis slave进程没重启,但是掉线了,重连后不满足部分复制条件

2.部分复制需要的条件

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变化不大,被更改的指令都保存在内存

实践

读写分离,redis通常用来做缓存,所以通过redis 复制策略,可以写主读从,减少master压力

主数据库禁止备份,从数据库备份,提升master性能, master挂掉后从slave提升为主

注意 不要直接操作master,不然master会把空的文件同步到slave,那样可能会造成数据全部丢失

redis-replicator使用的一点点心得相关推荐

  1. android编译modem,android modem调试的一点点心得

    android modem调试的一点点经验 1. mv /system/lib/libserria_gps.so /system/ 这个是关掉gps 2. mv /system/lib/libnm-r ...

  2. 多元线性回归,岭回归,lasso回归(具体代码(包括调用库代码和手写代码实现)+一点点心得)

    最近数据挖掘导论老师布置了一项作业,主要就是线性回归的实现,笔者之前听过吴恩达的线性回归的网课,但一直没有进行代码的实现,这次正好相对系统的整理一下,方便各位同学的学习,也希望能够对其进行优化,优化的 ...

  3. PMP新大纲,3A通过了考试,一点点心得供新人参考

    2022年8月16日,终于等到了PMP的考试结果! PMP考试终于通过啦,太开心啦,嘿嘿嘿,3A的成绩使得考前的辛苦都是值得的! 下面想跟大家分享下我的学习及考试心得,希望能够帮到想要进行PMP考试的 ...

  4. 使用eclipse svn塔建(配置)时的一点点心得

    有没有人遇到下面这种情况??自己创建的SVN如下: 但网上别人搭建好的是这样子的: 就是为什么我的只有个主文件,而没有src.webroot.meta-inf.web-inf等子文件呢?? 这是我找了 ...

  5. 我学习VC中所得的点点心得

    1  toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2  VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3  Java学习 ...

  6. 2021搞技术社区的一点点心得

    2021, 我们发起建立了Python大学生学习社区. 2021, 我们团结一致拿下多次优质社区荣誉和纪念. 2021, 我们还一起参加了一些博客活动. 以及其他. 虽然说是大学生学习社区,但我们也并 ...

  7. 关于TransE表示学习的一点点心得 (1)

    知识图谱中,TransE模型的translate究竟是什么意思? 字典里如实说 :translate   英 [trænzˈleɪt]   美 [trænzˈleɪt],v.翻译;译;被翻译;被译成; ...

  8. 关于数据库登陆名和数据库用户名的一点点心得

    记得自己从开始编写与sql数据库相关的程序起,就一直采用sa登陆,也没有听人说过用户名和登陆名之间有什么关系,甚至都不知道这些东西,只知道sa权限很大,可以执行数据库中的所有东西,直至暑假,在看到某一 ...

  9. 初学python的体会心得-python初学心得

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! python 是一门编程语言,任何编程语言从一开始就离不开动手实践,光靠看书.看视 ...

最新文章

  1. asp.net C#压缩打包文件例子
  2. linux软件安装卸载命令行
  3. Redux系列01:从一个简单例子了解action、store、reducer
  4. 学习设计模式 - 六大基本原则之开闭原则
  5. cmd xcopy 拷贝文件夹_u盘文件夹被病毒隐藏怎么解决 u盘文件夹被病毒隐藏解决方法【详细步骤】...
  6. proxytable代理不生效_深圳劳动纠纷律师为你解答劳动合同没有盖章是否生效
  7. 识别出脸部以及给脸部打马赛克
  8. 照片浏览器_照片审核不通过!这可能是史上最亏的中级失败理由!
  9. 下载并安装Redis教程
  10. (转载)每位开发人员都应铭记的10句编程谚语
  11. iOS开发之iPhone手机轻松获取UDID的六种方式
  12. 设定MyEclipse编辑代码区域文字的大小及非关键字的字体、字形和颜色
  13. HTML列表、表格、表单、超链接、音视频标签、内嵌
  14. RadarNet: Efficient Gesture Recognition Technique Utilizing a Miniaturized Radar Sensor
  15. 华为android打开usb调试模式,华为 PE-CL00 开启USB调试模式
  16. 两轮电动车高端VS中低端,雅迪、爱玛谁更靠近市场?
  17. SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelecto
  18. 一个完整的springboot项目所需要导入的依赖合集(方便查找)
  19. c语言循环结构排序,C语言循环结构 -C语言冒泡排序算法(附带源码)
  20. python怎样使用各个日期赤纬_Python-PyEphem方位和高度计算

热门文章

  1. postgresql整理
  2. 《神经科学:探索脑》学习笔记(第1章 神经科学导论)
  3. C#实现jQuery的方法连缀
  4. Django基础教程
  5. 从《100道光芒》到《可爱冠军的诞生》:湖南广电打响“参与式”电商突围战
  6. Amazon 中国区配置 PingIdentity 身份集成实现 Redshift 数据库群集单点登录
  7. 主频不同的服务器性能差异,0.2GHz主频差距可有可无?E3处理器实测
  8. 淘宝自动客服(旺旺机器人)
  9. 九亿少女的梦(python信息处理)
  10. 计算机新教师汇报课报道,提升专业促成长—开元路小学开展新教师汇报课记实...