欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种数据同步方法、装置及系统独创技术25281字

一种数据同步方法、装置及系统

2021-03-23 08:13:52

一种数据同步方法、装置及系统

  技术领域

  本申请涉及计算机技术领域,特别是涉及一种数据同步方法、装置及系统。

  背景技术

  多方客户端进行数据同步,并且数据量较大时,网络波动会对数据有很大影响,导致客户端之间、客户端与服务器数据不一致,例如会议协同白板,网络差时书写容易引起丢笔问题。

  目前客户端与服务器之间进行数据同步时,客户端直接将本地的数据发送至服务器,比较客户端的数据与服务器中的数据,当数据较大时,将本地数据发送至服务器耗时长,降低数据同步速度,并且由于数据较大,还会消耗较多的流量。

  因此,如何解决上述技术问题应是本领域技术人员重点关注的。

  发明内容

  本申请的目的是提供一种数据同步方法、装置及系统,以提升数据同步速度,降低流量消耗。

  为解决上述技术问题,本申请提供一种数据同步方法,应用于客户端,包括:

  判断所述客户端的第一版本是否小于所述客户端保存的服务器中的第二版本;

  若所述第一版本小于所述第二版本,则发送所述第二版本至所述服务器,以便所述服务器获取数据库中与所述第二版本对应的第二数据;

  接收所述服务器发送的所述第二数据;

  刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  可选的,还包括:

  若所述第一版本大于所述第二版本,则发送所述第一数据至所述服务器,以便所述服务器比较所述第一版本与目标版本的大小,所述目标版本为数据库中与所述第一数据对应的目标数据的版本;

  当所述第一版本小于所述目标版本时,接收所述服务器发送的所述目标版本,并更新所述第一版本为所述目标版本。

  可选的,还包括:

  判断在预设时间内是否接收到所述第二数据;

  若接收到所述第二数据,则执行刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应的步骤;

  若未接收到所述第二数据,则执行发送所述第二版本至所述服务器的步骤。

  本申请还提供一种数据同步装置,包括:

  第一判断模块,用于判断所述客户端的第一版本是否小于所述客户端保存的服务器中的第二版本;

  第一发送模块,用于若所述第一版本小于所述第二版本,则发送所述第二版本至所述服务器,以便所述服务器获取数据库中与所述第二版本对应的第二数据;

  第一接收模块,用于接收所述服务器发送的所述第二数据;

  刷新与更新模块,用于刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  可选的,还包括:

  第二判断模块,用于判断在预设时间内是否接收到所述第二数据;

  第一执行模块,用于若接收到所述第二数据,则执行刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应的步骤;

  第二执行模块,用于若未接收到所述第二数据,则执行发送所述第二版本至所述服务器的步骤。

  本申请还提供一种数据同步方法,应用于服务器,包括:

  当客户端的第一版本小于所述客户端保存的所述服务器中的第二版本时,接收所述客户端发送的所述第二版本;

  获取数据库中与所述第二版本对应的第二数据;

  发送所述第二数据至所述客户端,以便所述客户端刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  可选的,还包括:

  当所述第一版本大于所述第二版本时,接收所述客户端发送的所述第一数据;

  比较所述第一版本与目标版本的大小,所述目标版本为数据库中与所述第一数据对应的目标数据的版本;

  当所述第一版本小于所述目标版本时,发送所述目标版本至所述客户端,以便所述客户端更新所述第一版本为所述目标版本。

  本申请还提供一种数据同步装置,包括:

  第二接收模块,用于当客户端的第一版本小于所述客户端保存的所述服务器中的第二版本时,接收所述客户端发送的所述第二版本;

  获取模块,用于获取数据库中与所述第二版本对应的第二数据;

  第二发送模块,用于发送所述第二数据至所述客户端,以便所述客户端刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  可选的,还包括:

  第三接收模块,用于当所述第一版本大于所述第二版本时,接收所述客户端发送的所述第一数据;

  比较模块,用于比较所述第一版本与目标版本的大小,所述目标版本为数据库中与所述第一数据对应的目标数据的版本;

  第三发送模块,用于当所述第一版本小于所述目标版本时,发送所述目标版本至所述客户端,以便所述客户端更新所述第一版本为所述目标版本。

  本申请还提供一种数据同步系统,包括:

  客户端,用于执行上述任一种所述数据同步方法的步骤;

  服务器,用于执行上述任一种所述数据同步方法的步骤。

  本申请所提供的一种数据同步方法,应用于客户端,包括:判断所述客户端的第一版本是否小于所述客户端保存的服务器中的第二版本;若所述第一版本小于所述第二版本,则发送所述第二版本至所述服务器,以便所述服务器获取数据库中与所述第二版本对应的第二数据;接收所述服务器发送的所述第二数据;刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  可见,本申请中的数据同步方法客户端对本地的第一版本与本地保存的服务器中的第二版本进行比较,当第一版本小于第二版本时只发送第二版本至服务器,从而使服务器获取数据库中与第二版本对应的第二数据,并将第二数据发送至客户端,进而使客户端刷新第一数据为第二数据,并更新第一版本为第二版本,在进行数据同步的过程中客户端只需发送第二版本,无需发送第一数据,版本的大小远小于数据的大小,因此发送第二版本的过程耗时短,使得数据同步速度提升,同时降低流量消耗。

  此外,本申请还提供一种具有上述优点的装置和系统。

  附图说明

  为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

  图1为本申请实施例所提供的一种数据同步方法的流程图;

  图2为本申请实施例所提供的另一种数据同步方法的流程图;

  图3为本申请实施例提供的数据同步装置的结构框图;

  图4为本申请实施例所提供的另一种数据同步方法的流程图;

  图5为本申请实施例所提供的另一种数据同步方法的流程图;

  图6为本申请实施例提供的另一种数据同步装置的结构框图。

  具体实施方式

  为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

  正如背景技术部分所述,目前在进行数据同步时,客户端直接将本地的数据发送至服务器,比较客户端的数据与服务器中的数据,当数据较大时,将本地数据发送至服务器耗时长,降低数据同步速度,并且由于数据较大,还会消耗较多的流量。

  有鉴于此,本申请提供一种数据同步方法,请参考图1,图1为本申请实施例所提供的一种数据同步方法的流程图,该方法应用于客户端,包括:

  步骤S101:判断所述客户端的第一版本是否小于所述客户端保存的服务器中的第二版本。

  第一版本即客户端保存在本地的第一数据的版本,每个数据都有其对应的版本,第二版本与服务器中保存的第二数据相对应。

  步骤S102:若所述第一版本小于所述第二版本,则发送所述第二版本至所述服务器,以便所述服务器获取数据库中与所述第二版本对应的第二数据。

  第一版本小于第二版本,表明客户端中的第一数据不是最新的数据,需要进行数据同步,所以发送第二版本至服务器,从而使服务器获取保存在数据库中的最新的第二数据,并将第二数据发送至客户端,同时也表示服务器接收到了客户端发送的第二版本。

  步骤S103:接收所述服务器发送的所述第二数据。

  步骤S104:刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  进一步的,客户端在发送第二版本至服务器后,还包括:将第一数据保存在本地的回应列表中;相应的,在接收所述服务器发送的所述第二数据后,还包括:移除回应列表中的第一数据。

  本申请中的客户端为具有数据同步线程的客户端,不停地与服务器中的版本进行比对,即时性高,保证了数据的一致性,避免现有的同步方式为有限重试或者是主动触发重试,又或者重连网络后请求服务器完整数据到客户端,

  本申请中的数据同步方法客户端对本地的第一版本与本地保存的服务器中的第二版本进行比较,当第一版本小于第二版本时只发送第二版本至服务器,从而使服务器获取数据库中与第二版本对应的第二数据,并将第二数据发送至客户端,进而使客户端刷新第一数据为第二数据,并更新第一版本为第二版本,在进行数据同步的过程中客户端只需发送第二版本,无需发送第一数据,版本的大小远小于数据的大小,因此发送第二版本的过程耗时短,使得数据同步速度提升,同时降低流量消耗。

  请参考图2,在本申请的一个实施例中,数据同步方法,包括:

  步骤S201:判断所述客户端的第一版本是否小于所述客户端保存的服务器中的第二版本。

  步骤S202:若所述第一版本小于所述第二版本,则发送所述第二版本至所述服务器,以便所述服务器获取数据库中与所述第二版本对应的第二数据。

  步骤S203:接收所述服务器发送的所述第二数据。

  步骤S204:刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  步骤S205:若所述第一版本大于所述第二版本,则发送所述第一数据至所述服务器,以便所述服务器比较所述第一版本与目标版本的大小,所述目标版本为数据库中与所述第一数据对应的目标数据的版本。

  当第一版本大于第二版本时,客户端中的第一数据比服务器的数据库中的第二数据新,因此客户端发送第一数据至服务器,需要指出的是,第一数据中携带有表示其类别的识别码和第一版本。但是,服务器的数据库中还会有其他客户端发送至服务器中的目标数据。服务器接收到第一数据后,根据第一数据的识别码在数据库中找到与第一数据的识别码对应的目标数据,进而将第一版本与目标数据的目标版本进行对比。

  步骤S206:当所述第一版本小于所述目标版本时,接收所述服务器发送的所述目标版本,并更新所述第一版本为所述目标版本。

  当第一版本小于目标版本,表明目标版本对应的目标数据比第一数据新,此时客户端会接收到服务器发送的目标版本,并更新本地的第一版本为目标版本。

  进一步的,当第一版本等于目标版本,表明第一数据即为最新数据,客户端处的第一数据无需进行同步,不作处理;当第一版本大于目标版本,表明第一数据即为最新数据,客户端处的第一数据无需进行同步,此时客户端将第一数据发送至服务器,使服务器获得了最新数据,实现了对服务器的数据同步。

  需要指出的是,当第一版本等于第二版本时,无需做任何处理。

  本实施例所提供的数据同步方法,只有在客户端的第一版本大于第二版本时才发送第一数据至服务器,进而进行数据同步,当第一版本小于第二版本时,只需要发送第二版本至服务器,无需发送第一数据,版本的大小远小于数据的大小,因此发送第二版本的过程耗时短,使得数据同步速度提升,同时降低流量消耗。

  优选地,在上述实施例的基础上,在本申请的一个实施例中,数据同步方法还包括:

  判断在预设时间内是否接收到所述第二数据;

  若接收到所述第二数据,则执行刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应的步骤;

  若未接收到所述第二数据,则执行发送所述第二版本至所述服务器的步骤。

  需要指出的是,本申请中对预设时间不做具体限定,可自行设置。例如,预设时间可以为10秒,或者15秒等等。

  优选地,在上述实施例的基础上,在本申请的一个实施例中,数据同步方法还包括:

  判断在预设时间内是否接收到所述目标版本;

  若接收到所述目标版本,则执行更新所述第一版本为所述目标版本的步骤;

  若未接收到所述目标版本,则执行发送所述第一数据至所述服务器的步骤。

  下面对本申请实施例提供的数据同步装置进行介绍,下文描述的数据同步装置与上文描述的数据同步方法可相互对应参照。

  图3为本申请实施例提供的数据同步装置的结构框图,参照图3数据同步装置可以包括:

  第一判断模块100,用于判断所述客户端的第一版本是否小于所述客户端保存的服务器中的第二版本;

  第一发送模块200,用于若所述第一版本小于所述第二版本,则发送所述第二版本至所述服务器,以便所述服务器获取数据库中与所述第二版本对应的第二数据;

  第一接收模块300,用于接收所述服务器发送的所述第二数据;

  刷新与更新模块400,用于刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  本实施例的数据同步装置用于实现前述的数据同步方法,因此数据同步装置中的具体实施方式可见前文中的数据同步方法的实施例部分,例如,第一判断模块100,第一发送模块200,第一接收模块300,刷新与更新模块400,分别用于实现上述数据同步方法中步骤S101,S102,S103和S104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

  可选的,数据同步装置还包括:

  第二判断模块,用于判断在预设时间内是否接收到所述第二数据;

  第一执行模块,用于若接收到所述第二数据,则执行刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应的步骤;

  第二执行模块,用于若未接收到所述第二数据,则执行发送所述第二版本至所述服务器的步骤。

  可选的,数据同步装置还包括:

  第四发送模块,用于若所述第一版本大于所述第二版本,则发送所述第一数据至所述服务器,以便所述服务器比较所述第一版本与目标版本的大小,所述目标版本为数据库中与所述第一数据对应的目标数据的版本;

  接收与更新模块,用于当所述第一版本小于所述目标版本时,接收所述服务器发送的所述目标版本,并更新所述第一版本为所述目标版本。

  本申请还提供一种数据同步方法,请参考图4,图4为本申请实施例所提供的另一种数据同步方法的流程图,该方法应用于服务器,包括:

  步骤S301:当客户端的第一版本小于所述客户端保存的所述服务器中的第二版本时,接收所述客户端发送的所述第二版本。

  第一版本小于第二版本表明服务器中与第二版本对应的第二数据比客户端中与第一版本对应的第一数据新,客户端的第一数据需要进行数据同步,此时服务器接收到客户端发送的第二版本。

  步骤S302:获取数据库中与所述第二版本对应的第二数据。

  步骤S303:发送所述第二数据至所述客户端,以便所述客户端刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  本申请中的数据同步方法,当客户端的第一版本小于客户端保存的服务器中的第二版本时,服务器只接收客户端发送的第二版本,进而获取与第二版本对应的第二数据,并发送第二数据至客户端,以便客户端进行数据同步,版本的大小远小于数据的大小,因此接收第二版本的过程耗时短,使得数据同步速度提升,同时降低流量消耗。

  请参考图5,在本申请的一个实施例中,数据同步方法包括:

  步骤S401:当客户端的第一版本小于所述客户端保存的所述服务器中的第二版本时,接收所述客户端发送的所述第二版本。

  步骤S402:获取数据库中与所述第二版本对应的第二数据。

  步骤S403:发送所述第二数据至所述客户端,以便所述客户端刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  步骤S404:当所述第一版本大于所述第二版本时,接收所述客户端发送的所述第一数据。

  当第一版本大于第二版本时,服务器中与第二版本对应的第二数据没有客户端本地的第一数据新,因此,服务器接收到客户端发送的第一数据,其中,第一数据中携带有表示其类别的识别码和第一版本。

  步骤S405:比较所述第一版本与目标版本的大小,所述目标版本为数据库中与所述第一数据对应的目标数据的版本。

  目标数据为服务器的数据库中保存的其他客户端发送的数据,服务器接收到第一数据后,根据第一数据的识别码在数据库中找到与第一数据的识别码对应的目标数据,进而对第一版本与目标版本进行对比。

  步骤S406:当所述第一版本小于所述目标版本时,发送所述目标版本至所述客户端,以便所述客户端更新所述第一版本为所述目标版本。

  当第一版本小于目标版本,表明目标版本对应的目标数据比第一数据新,发送目标版本至客户端,以使客户端更新本地的第一版本为目标版本。

  进一步的,当第一版本等于目标版本,表明第一数据即为最新数据,客户端处的第一数据无需进行同步,不做处理;当第一版本大于目标版本,表明第一数据即为最新数据,服务器接收客户端发送的第一数据,获得了最新数据,实现了对服务器的数据同步。

  需要指出的是,当第一版本等于第二版本时,无需做任何处理。

  下面对本申请实施例提供的数据同步装置进行介绍,下文描述的数据同步装置与上文描述的数据同步方法可相互对应参照。

  图6为本申请实施例提供的另一种数据同步装置的结构框图,参照图6数据同步装置可以包括:

  第二接收模块500,用于当客户端的第一版本小于所述客户端保存的所述服务器中的第二版本时,接收所述客户端发送的所述第二版本;

  获取模块600,用于获取数据库中与所述第二版本对应的第二数据;

  第二发送模块700,用于发送所述第二数据至所述客户端,以便所述客户端刷新第一数据为所述第二数据,并更新所述第一版本为所述第二版本,所述第一数据与所述第一版本对应。

  本实施例的数据同步装置用于实现前述的数据同步方法,因此数据同步装置中的具体实施方式可见前文中的数据同步方法的实施例部分,例如,第二接收模块500,获取模块600,第二发送模块700,分别用于实现上述数据同步方法中步骤S301,S302,S303,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

  可选的,数据同步装置还包括:

  第三接收模块,用于当所述第一版本大于所述第二版本时,接收所述客户端发送的所述第一数据;

  比较模块,用于比较所述第一版本与目标版本的大小,所述目标版本为数据库中与所述第一数据对应的目标数据的版本;

  第三发送模块,用于当所述第一版本小于所述目标版本时,发送所述目标版本至所述客户端,以便所述客户端更新所述第一版本为所述目标版本。

  本申请还提供一种数据同步系统,包括:

  客户端,用于执行上述实施例所述数据同步方法的步骤;

  服务器,用于执行上述实施例所述数据同步方法的步骤。

  本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

  专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

  结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

  以上对本申请所提供的数据同步方法、装置及系统进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

《一种数据同步方法、装置及系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)