Redis 复制

分布式系统中,复制通常是解决单点故障、保障高可用的方式,本文将整理复制时传输延迟的参数。

传输延迟

主从节点如果不是部署在同一台机器上,那么复制时就会产生网络延迟问题。Redis 提供了 repl-disable-tcp-nodelay 参数,用于控制与 Linux 的配置选项 TCP_NODELAY ,之所以想分析下这个参数是因为感觉它不是很好理解,参考的书中用关闭和开启来说明这个参数,不太贴切。

参数含义

disable 本身的含义是“使……失去能力;禁用”,那么这个参数的含义就是是否禁用 TCP_NODELAY 。

参数值为 yes 和 no。

禁用 TCP_NODELAY:no ,不禁用,双重否定等于肯定,即启用 ,TCP_NODELAY=on;
禁用 TCP_NODELAY:yes,就是禁用, TCP_NODELAY=off。

参数默认值

Redis 中这个参数的默认值是“no”,就是不禁用用 TCP_NODELAY。

参数的影响

启用 TCP_NODELAY 时,无网络延迟,主服务器的命令无论大小都会及时发送给从节点,此时会增加网络带宽的消耗。适合主从网络环境良好的场景。

禁用 TCP_NODELAY 时,主从节点的通信会受到网络拥塞控制,Linux 内核会做出一定的优化,如合并较小的 TCP 数据包从而节省带宽。默认发送时间间隔取决 Linux 内核,一般默认为 40 毫秒。适合垮机房部署的情况。

网络拥塞控制

扩散搜索 TCP_NODELAY,补充如下内容:

在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个算法来尝试解决福特汽车公司的网络拥塞问题(RFC 896),该问题的具体描述是:如果我们的应用程序一次产生1个字节的数据,而这个1个字节数据又以网络数据包的形式发送到远端服务器,那么就很容易导致网络由于太多的数据包而过载。比如,当用户使用Telnet连接到远程服务器时,每一次击键操作就会产生1个字节数据,进而发送出去一个数据包,所以,在典型情况下,传送一个只拥有1个字节有效数据的数据包,却要发费40个字节长包头(即ip头20字节+tcp头20字节)的额外开销,这种有效载荷(payload)利用率极其低下的情况被统称之为愚蠢窗口症候群(Silly Window Syndrome)。可以看到,这种情况对于轻负载的网络来说,可能还可以接受,但是对于重负载的网络而言,就极有可能承载不了而轻易的发生拥塞瘫痪。

(引自:https://www.cnblogs.com/wajika/p/6573014.html)

额外参数_Redis的复制参数学习笔记相关推荐

  1. 怎么传日期参数_时间序列amp;日期学习笔记大全(下)

    作者:湛林 来源:凹凸数据 时间序列&日期学习笔记大全(上) 建议收藏 9. 日期 时间的组成 dt.方法,具体参数及含义详见附件 # 可以通过s.dt.time 获得各种信息s.dt.yea ...

  2. 命令行参数tail c语言,osg学习笔记2, 命令行参数解析器ArgumentParser

    php简单实现socket通信 socket通信的原理在这里就不说了,它的用途还是比较广泛的,我们可以使用socket来做一个API接口出来,也可以使用socket来实现两个程序之间的通信,我们来研究 ...

  3. python如何调用参数配置文件_【Python学习笔记七】从配置文件中读取参数

    将一些需要经常更改的参数存放在配置文件中,通过读取配置文件来获取参数,这样修改以及使用起来比较方便 1.首先是配置文件的写法,如下一个environment.ini文件: a:里面"[]&q ...

  4. tcptracerte参数_TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute【转】

    1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送 ...

  5. 三相逆变器双pi控制器参数如何调节_电工学习笔记 - 比例谐振控制器- PR controller...

    ===============本文为个人学习小结,方便自己和其他同学参考使用========= ===============如有错误望同学们指出,不定期进行补充更新============= 一般大 ...

  6. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  7. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  8. 31天重构学习笔记下载

    前言 前两天写了一篇程序猿也爱学英语(上),有图有真相的文章,写作那篇文章只是自己一时兴起,或者说是自己的兴趣使然.文中的观点只是自己的学习心得和体会,属一家之言且鉴于本人不是学英语出身,所以也肯定有 ...

  9. Linux学习笔记:Linux常用命令总结

    文章目录 前言 Linux学习笔记:Linux常用命令总结 1. 目录命令 1.1 Linux目录结构 1.2 cd命令 切换工作目录 1.3 ls命令 显示目录下文件 1.4 mkdir命令 创建目 ...

  10. 31 天重构学习笔记索引

    由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的 ...

最新文章

  1. 再见,Navicat!同事安利的这个IDEA的兄弟,真香!
  2. 如何处理大数据:微博信息流数据库设计
  3. Excel2003Training(1)-浅谈Excel的5个小技巧
  4. 珠海a货翡翠,惠州a货翡翠
  5. Python入门学习---第二天
  6. C++阶段01笔记07【指针(基本概念、变量定义和使用、内存空间、空指针和野指针、const修饰指针、指针和数组、指针和函数)】
  7. mysql 安装软件无法启动不了_Mysql 安装服务无法启动解决方案与使用的一般使用指令...
  8. 在linux的weblogic上增加启动参数
  9. 利用滞后——超前系统解决高阶随动系统(课程设计)
  10. 开发工具:Git 代码回退功能详解,很实用!
  11. 我的物联网项目(十二) 单体应用架构不行?
  12. mysql 尝试读取超过流末尾的_MySql异常:尝试读取超出流末尾的内容
  13. open***2.3.12安装与easy-rsa3的使用
  14. Objective-C 2.0 with Cocoa Foundation 1 前言
  15. phpexcel导出后乱码或者是打不开文件必须修复的问题
  16. java低配电脑运行,学会这几招,低配电脑用着也不卡啦!真心的实用 ,真是好方法。...
  17. java删除sql表中记录,您将如何维护SQL表中的历史记录?
  18. 《jQuery、jQuery UI及jQuery Mobile技巧与示例》——3.5 技巧:更改元素的HTML内容...
  19. 管理部门使用计算机属于固定资产核算吗,固定资产核算管理内容
  20. 奇偶校验c语言ascii,奇偶校验(parity check)

热门文章

  1. new Random().nextInt
  2. Visual Studio 开源控件扩展 NuGet 常用组件安装命令
  3. Codeforces Round #339 (Div. 1) C. Necklace 构造题
  4. PXE网络装机和kickstart无人值守
  5. [转] Batch Normalization
  6. Hibernate基础及配置
  7. apache和IIS共存,服务器对外统一使用80端口
  8. Eclipse快捷键大全(转贴)
  9. 单应性(同义词直射变换、射影变换和射影性等)(来自wiki)
  10. freetype字体位图转距离场_关于freetype的移植和其官方demos的使用总结