一种redis主从全量同步数据的限速方法及装置制造方法及图纸

技术编号:16969789 阅读:33 留言:0更新日期:2018-01-07 06:40
本发明专利技术提供一种redis主从全量同步数据的限速方法及装置,redis主节点在以预设时间段设置的定时事件开始时,执行在所述定时事件开始之前创建的文件同步事件,所述文件同步事件用于控制所述redis主节点向所述redis从节点发送rdb文件;根据所述文件同步事件限定的发送速率,发送所述rdb文件中的同步数据;在所述预设时间段内发送所述同步数据且删除所述文件同步事件。因此本发明专利技术可以控制主从同步的速度,保证主从同步不会占用网卡的全部带宽,从而保证了业务正常运行。

【技术实现步骤摘要】
一种redis主从全量同步数据的限速方法及装置
本专利技术涉及数据同步
,尤其涉及一种redis主从全量同步数据的限速方法及装置。
技术介绍
redis是个高性能的开源的数据库,有着非常高的读写性能,可以将存储在内存的键值对数据持久化到硬盘,用户可以根据实际使用场景来配置不同的持久化方式。为了提高系统稳定性,redis系统通常采用的主从结构。在redis从节点的初始化阶段,需要将redis主节点上的数据全量复制一份,以作备用这一事件称为redis的主从全量同步。在主从全量同步过程中,redis主节点向redis从节点发送rdb文件时采用TCP通信,即redis主节点每次向redis从节点发送16k(字节)的数据,发送完紧接着发送下一次的16k数据,一直不停的循环发送,直至rdb文件中的数据发送完为止。由于这样redis主节点持续不停的向redis从节点发送数据,使主从节点之间的数据传输带宽急剧增加,甚至达到网卡的带宽瓶颈,当网卡带宽被全部占用时,主从节点之间则无法正常通信,从而造成redis系统的业务异常。
技术实现思路
有鉴于此,本专利技术提供一种redis主从全量同步数据的限速方法及装置来解决全量同步导致带宽出现瓶颈的问题。具体地,本专利技术是通过如下技术方案实现的:一方面,本专利技术提供一种redis主从全量同步数据的限速方法,所述方法应用于redis系统中的redis主节点,所述方法包括:在以预设时间段设置的定时事件开始时,执行在所述定时事件开始之前创建的文件同步事件,所述文件同步事件用于控制所述redis主节点向所述redis从节点发送rdb文件;根据所述文件同步事件限定的发送速率,发送所述rdb文件中的同步数据;在所述预设时间段内发送所述同步数据且删除所述文件同步事件。另一方面,基于相同的构思,本专利技术还提供一种redis主从全量同步数据的限速装置,所述装置应用于redis系统中的redis主节点,所述装置包括:事件创建单元,用于在以预设时间段设置的定时事件开始时,执行在所述定时事件开始之前创建的文件同步事件,所述文件同步事件用于控制所述redis主节点向所述redis从节点发送rdb文件;数据发送单元,用于根据所述文件同步事件限定的发送速率,发送所述rdb文件中的同步数据;事件删除单元,用于在所述预设时间段内发送所述同步数据且删除所述文件同步事件。本专利技术实施例提供的技术方案带来的有益效果是:本专利技术使redis主节点在以预设时间段设置的定时事件开始时,执行在所述定时事件开始之前创建的文件同步事件,用于控制所述redis主节点向所述redis从节点发送rdb文件;然后redis主节点可根据所述文件同步事件限定的发送速率,发送所述rdb文件中的同步数据,并在所述预设时间段内发送所述同步数据且删除所述文件同步事件。相比于现有技术,本专利技术可以按照限定的速率在预设时间段内同步数据,并且在预设时间段内删除文件同步事件,从而根据限速调整每个定时事件中主从同步的数据,保证主从同步不会占用网卡的全部带宽,从而保证了业务正常运行。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一种示例性实施方式中的一种redis主从全量同步数据的限速方法的处理流程图;图2是本专利技术一种示例性实施方式中时间长度的关系示意图;图3是本专利技术一种示例性实施方式中的另一种redis主从全量同步数据的限速方法的处理流程图;图4是本专利技术一种示例性实施方式中的redis主从全量同步数据的限速装置所在设备的硬件结构图;图5是本专利技术一种示例性实施方式中的一种redis主从全量同步数据的限速装置的逻辑结构图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。请参考图1,是本专利技术一种示例性实施方式中的一种redis主从全量同步数据的限速方法的处理流程图,所述方法应用于redis系统中的redis主节点,所述方法包括:步骤101、在以预设时间段设置的定时事件开始时,执行在所述定时事件开始之前创建的文件同步事件,所述文件同步事件用于控制所述redis主节点向所述redis从节点发送rdb文件;在本实施例中,在redis的主从全量同步过程中通常包括定时事件和文件同步事件;其中定时事件是指在redis的主从全量同步过程中,以预设时间段设置的定时时间触发的定时事件,也可以理解为当前时间周期和下一个时间周期的临界时刻触发的事件。作为一个实施例,redis主节点可以采用以预设时间段设置定时时间戳的方式触发定时事件,即当redis主节点判断此时到达定时时间戳时,可以认为新的定时事件开启,然后在新的定时事件中再根据定时时间间隔设置下一个定时时间戳,从而到下一个定时时间戳时开启下一个定时事件。例如,起始的定时时间戳为t=0ms,当到达0ms时,则开启第一个定时事件;假设当前的预设时间段为100ms,则设置下一个定时时间为在t=100ms;并且当时间到达第100ms时,开启下一个定时事件,以此类推。在本实施例中,在每个定时事件开始时,redis主节点可以执行在所述定时事件开始之前创建的文件同步事件,所述文件同步事件用于控制所述redis主节点向所述redis从节点发送rdb文件。创建并执行文件同步事件,所述文件同步事件具体为redis主节点根据位置标签向redis从节点发送rdb文件,所述位置标签是指rdb文件中待同步数据的起始位置,位置标签会根据已发送的累计数据量的变化而改变。作为一个实施例,在每个定时事件开始时,redis主节点还可以先判断是否有待同步的rdb文件,例如当有新的rdb进程结束时,或者之前的rdb文件没有同步完时,说明此时需要进行rdb文件同步,因此可以创建文件同步事件。步骤102、根据所述文件同步事件限定的发送速率,发送所述rdb文件中的同步数据;在本实施例中,redis主节点可以根据所述文件同步事件限定的发送速率,发送所述rdb文件中的同步数据。举例来讲,一般线上的服务器用的是1000Mbps的网卡,则主从同步的最大数据传输率为1000/8=125Mk/s(如图2上侧的时间轴所示),考虑到1000Mbps的网卡,在主从之间的数据传输率900Mbps左右时候就会把网卡打满,因此为了避免网卡带宽被全部占用,在主从同步时增加一个限速策略,即将主从同步速度限制在100Mk/s(如图2下侧的时间轴所示),从而根据限制的速度大小100Mk/s,保证每秒向从节点发送预设数据量即100M,即平均每100ms同步10M数据。相比于现有技术不限速时平均每100ms同步12.5M数据,本专利技术通过限速,控制平均每100ms同步10M数据,而发送完成后,不再继续发送,直到下一个100ms时再发送10M数据,从而可以能控制网卡流量,避免把网卡带宽打满。因此说明本专利技术经过限速后可以控制在每个定时事件内发送的rdb文件中的数据量,使定时事件内发送的同步数据量低于带宽限制的数据量。步骤103、在所述预设时间段内发送所述同步数据且本文档来自技高网...
一种redis主从全量同步数据的限速方法及装置

【技术保护点】
一种redis主从全量同步数据的限速方法,其特征在于,所述方法应用于redis系统中的redis主节点,所述方法包括:在以预设时间段设置的定时事件开始时,执行在所述定时事件开始之前创建的文件同步事件,所述文件同步事件用于控制所述redis主节点向所述redis从节点发送rdb文件;根据所述文件同步事件限定的发送速率,发送所述rdb文件中的同步数据;在所述预设时间段内发送所述同步数据且删除所述文件同步事件。

【技术特征摘要】
1.一种redis主从全量同步数据的限速方法,其特征在于,所述方法应用于redis系统中的redis主节点,所述方法包括:在以预设时间段设置的定时事件开始时,执行在所述定时事件开始之前创建的文件同步事件,所述文件同步事件用于控制所述redis主节点向所述redis从节点发送rdb文件;根据所述文件同步事件限定的发送速率,发送所述rdb文件中的同步数据;在所述预设时间段内发送所述同步数据且删除所述文件同步事件。2.根据权利要求1所述的方法,其特征在于,在所述预设时间段内发送所述同步数据且删除所述文件同步事件,具体还包括:记录以所述发送速率和小于所述预设时间段的目标时间段确定的所述同步数据的数据量;当所述数据量与所述文件同步事件设置的发送阈值相等时,根据所述数据量的大小调整所述rdb中用于指示发送所述数据量的起始位置标签。3.根据权利要求2所述的方法,其特征在于,在所述预设时间段内发送所述同步数据且删除所述文件同步事件,所述方法还包括:以小于所述数据量的固定数据量循环发送所述数据量且为所述固定数据量累计计算得到累计发送量;当所述累计发送量等于所述发送阈值,且循环发送所述固定发送量的持续时间段不超过所述目标时间段时,停止循环发送所述固定发送量的第一进程,所述第一进程停止表示发送所述数据量完成;当所述第一进程停止时,删除所述文件同步事件。4.根据权利要求3所述的方法,其特征在于,所述根据所述数据量的大小调整所述rdb中用于指示发送所述数据量的起始位置标签,具体为:在所述rdb文件中的起始位置标签之后间隔所述发送阈值的数据位置添加用于更新所述起始位置的标签,且添加所述用于更新所述起始位置的标签后删除所述起始位置标签。5.根据权利要求3所述的方法,其特征在于,在所述预设时间段内发送所述同步数据且删除所述文件同步事件,所述方法还包括:当所述累计...

【专利技术属性】
技术研发人员:刘先攀于晓峰吴连朋夏章抓
申请(专利权)人:聚好看科技股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1