Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020108544 - METHOD, APPARATUS AND SYSTEM FOR SYNCHRONOUSLY CACHING DATA

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209   0210   0211   0212   0213   0214   0215   0216   0217   0218   0219   0220   0221   0222   0223   0224   0225   0226   0227   0228   0229   0230   0231   0232   0233   0234   0235   0236   0237   0238   0239   0240   0241   0242   0243   0244   0245   0246   0247   0248   0249   0250   0251   0252   0253   0254   0255   0256   0257   0258   0259   0260   0261   0262   0263   0264   0265   0266   0267   0268   0269   0270   0271  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23  

附图

1   2   3   4   5   6   7  

说明书

发明名称 : 同步缓存数据的方法、装置和系统

[0001]
本申请要求于2018年11月27日提交的申请号为201811427828.X、发明名称为“同步缓存数据的方法、装置和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

[0002]
本申请涉及数据存储领域,特别涉及一种同步缓存数据的方法、装置和系统。

背景技术

[0003]
随着计算机技术和网络技术的发展,为了使设备能快速的响应用户的请求,设备之间的交互显得尤为重要。例如,终端与服务器之间的交互,服务器与服务器之间的交互等。
[0004]
相关技术中,为了使设备之间的交互更快速,一般是将要交互的设备上存储的数据进行同步。具体处理是每次一个设备上的数据进行修改后,会同步给与该设备交互的设备,使该交互的设备及时的更新缓存的数据。
[0005]
由于相关技术中需要将所有的数据进行同步,会导致传输资源的浪费,所以急需提供一种同步缓存数据的方法。
[0006]
发明内容
[0007]
为了解决相关技术的问题,本公开实施例提供了一种同步缓存数据的方法、装置和系统。所述技术方案如下:
[0008]
第一方面,提供了一种同步缓存数据的方法,所述方法包括:
[0009]
第一设备接收第二设备发送的数据同步请求,其中,所述数据同步请求中携带有所述第二设备缓存的分片的名称;
[0010]
所述第一设备确定所述第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔;
[0011]
所述第一设备根据所述时间间隔、所述第二设备缓存的分片的名称和所述第二设备对应的缓存清空时长,在所述第二设备缓存的分片的名称中,确定待 清空的分片的名称、待更新的分片的名称和无更新的分片的名称;
[0012]
所述第一设备向所述第二设备发送所述待清空的分片的名称、所述无更新的分片的名称和所述待更新的分片的名称以及各待更新的分片中待更新的数据。
[0013]
可选的,所述数据同步请求中还携带有所述第一设备上次接收到所述第二设备发送的数据同步请求的时间戳;
[0014]
所述第一设备确定所述第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔,包括:
[0015]
所述第一设备将所述第一设备本次接收到所述数据同步请求的时间戳与所述数据同步请求中携带的时间戳取差值,获得所述第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔。
[0016]
这样,可以节约第一设备的存储空间。
[0017]
可选的,所述第一设备根据所述时间间隔、所述第二设备缓存的分片的名称和所述第二设备对应的缓存清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,包括:
[0018]
如果所述时间间隔小于所述第二设备对应的缓存清空时长,则所述第一设备根据所述第二设备缓存的各分片的名称,确定所述各分片分别对应的分片清空时长;
[0019]
所述第一设备根据所述时间间隔和所述各分片分别对应的分片清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[0020]
这样,可以使确定出的待清空的分片的名称、待更新的分片的名称和无更新的分片的名称更准确。
[0021]
可选的,所述方法还包括:
[0022]
如果所述时间间隔大于或等于所述第二设备对应的缓存清空时长,则所述第一设备向所述第二设备发送缓存清空通知,以使所述第二设备对当前存储的分片中的数据进行清空处理。
[0023]
这样,可以降低第二设备响应差的概率。
[0024]
可选的,所述第一设备根据所述第二设备缓存的各分片的名称,确定所述各分片分别对应的分片清空时长,包括:
[0025]
所述第一设备根据所述第二设备缓存的各分片的名称、存储的分片的名称 与分片类型的对应关系,确定所述第二设备缓存的各分片所属的分片类型;
[0026]
所述第一设备根据存储的分片类型与分片清空时长的对应关系,确定所述各分片属的分片类型所对应的分片清空时长。
[0027]
可选的,所述第一设备根据所述时间间隔和所述各分片分别对应的分片清空时长,在所述第二设备缓存的分片中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,包括:
[0028]
对于所述第二设备缓存的每个分片,如果所述时间间隔大于或等于所述分片的分片清空时长,则所述第一设备确定所述分片的名称为待清空的分片的名称,如果所述时间间隔小于所述分片的分片清空时长,则所述第一设备确定所述分片对应的目标同步时长和目标同步记录数目,所述目标同步时长用于指示所述分片的数据被同步的最长时间间隔,所述目标同步记录数目用于指示所述分片被同步的最多次数;
[0029]
如果所述时间间隔大于或等于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目大于或等于所述分片对应的目标同步记录数目,则所述第一设备确定所述分片的名称为待清空的分片的名称;
[0030]
如果所述时间间隔小于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目小于所述分片对应的目标同步记录数目,则所述第一设备确定所述分片的名称为无更新的分片的名称;
[0031]
如果所述时间间隔大于或等于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目小于所述分片对应的目标同步记录数目,则所述第一设备确定所述分片的名称为待更新的分片的名称;
[0032]
如果所述时间间隔小于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目大于或等于所述分片对应的目标同步记录数目,则所述第一设备确定所述分片的名称为待更新的分片的名称。
[0033]
这样,可以使确定出的待清空的分片的名称、待更新的分片的名称和无更新的分片的名称更准确。
[0034]
可选的,所述第一设备确定所述分片对应的目标同步时长和目标同步记录数目,包括:
[0035]
所述第一设备根据存储的分片的名称与分片类型的对应关系,确定所述分片所属的分片类型;
[0036]
所述第一设备根据存储的分片类型与目标同步时长、目标同步记录数目的对应关系,确定所述分片所属的分片类型对应的目标同步时长和目标同步记录数目。
[0037]
可选的,所述方法还包括:
[0038]
所述第一设备从目标缓存区域获取所述分片的同步记录数目。
[0039]
这样,可以快速的获取到同步记录数目。
[0040]
可选的,所述方法还包括:
[0041]
所述第一设备接收数据修改请求,其中,所述数据修改请求中携带有修改后的数据、修改前的数据的标识和所述修改后的数据所属的分片的名称;
[0042]
所述第一设备根据所述数据修改请求,在数据库中,将所述修改前的数据的标识对应的数据修改为修改后的数据,并且在所述目标缓存区域,记录所述修改后的数据所属的分片的名称、目标分片类型、存储所述修改后的数据的时间戳和所述修改后的数据的对应关系,所述目标分片类型为所述修改后的数据所属的分片的名称对应的分片类型。
[0043]
这样,可以使后续快速的获取到同步记录数目。
[0044]
可选的,所述第一设备接收第二设备发送的数据同步请求,包括:
[0045]
在所述第一设备与所述第二设备之间的连接为短连接时,所述第一设备接收所述第二设备每隔目标周期发送的数据同步请求。
[0046]
可选的,所述方法还包括:
[0047]
所述第一设备在所述第一设备与所述第二设备之间的连接为长连接时,每当检测到目标数据修改时,如果所述目标数据所属的分片为所述第二设备的分片,则向所述第二设备发送数据同步通知,其中,所述数据同步通知中携带有修改后的目标数据、以及所述修改后的目标数据所属的分片的名称。
[0048]
这样,可以及时的同步数据。
[0049]
可选的,所述数据同步请求中携带有所述第二设备缓存的分片中被请求次数超过目标次数的分片的名称,其中,所述被请求次数指距离当前时间点最近的目标时长内被请求次数。
[0050]
这样,仅同步高频的分片,可以节约传输资源。
[0051]
第二方面,提供了一种同步缓存数据的方法,所述方法包括:
[0052]
第二设备向第一设备发送数据同步请求,其中,所述数据同步请求中携带有所述第二设备缓存的分片的名称;
[0053]
所述第二设备接收所述第一设备发送的待清空的分片的名称、无更新的分片的名称和待更新的分片的名称以及各待更新的分片中待更新的数据;
[0054]
所述第二设备对所述待清空的分片的名称对应的每个分片进行清空处理,并且对所述待更新的分片的名称对应的每个分片中的待更新的数据进行更新处理。
[0055]
可选的,所述第二设备向第一设备发送数据同步请求,包括:
[0056]
在第二设备与第一设备的连接为短连接时,每隔目标周期,所述第二设备向第一设备发送数据同步请求。
[0057]
可选的,所述方法还包括:
[0058]
在所述第二设备与所述第一设备的连接为长连接时,所述第二设备接收所述第一设备发送的数据同步通知,其中,所述数据同步通知中携带有修改后的目标数据、以及所述修改后的目标数据所属的分片的名称;
[0059]
如果所述第二设备中所述修改后的目标数据所属的分片中缓存有所述目标数据,则将所述目标数据修改为所述修改后的目标数据,如果所述第二设备中所述修改后的目标数据所属的分片中未缓存有所述目标数据,则删除所述修改后的目标数据。
[0060]
可选的,所述方法还包括:
[0061]
所述第二设备当接收到数据查询请求时,如果所述数据查询请求对应的数据不属于所述第二设备当前缓存的分片,则创建新分片,并向所述第一设备发送创建新分片的消息;所述第二设备当接收到所述服务器基于所述数据查询请求获取到相应数据时,将所述相应数据存储在所述新分片中,并反馈所述数据查询请求对应的数据;
[0062]
如果所述数据查询请求对应的数据所属的分片为所述第二设备当前缓存的目标分片,则基于所述目标分片中所述数据查询请求对应的数据进行反馈。
[0063]
第三方面,提供了一种同步缓存数据的设备,所述设备包括:
[0064]
接收模块,用于接收第二设备发送的数据同步请求,其中,所述数据同步请求中携带有所述第二设备缓存的分片的名称;
[0065]
确定模块,用于确定第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔;根据所述时间间隔、所述第二设备缓存的分片的名称和所述第二设备对应的缓存清空时长,在所述第二设备缓存 的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称;
[0066]
发送模块,用于向所述第二设备发送所述待清空的分片的名称、所述无更新的分片的名称和所述待更新的分片的名称以及各待更新的分片中待更新的数据。
[0067]
可选的,所述数据同步请求中还携带有所述第一设备上次接收到所述第二设备发送的数据同步请求的时间戳;
[0068]
所述确定模块,用于:
[0069]
将所述第一设备本次接收到所述数据同步请求的时间戳与所述数据同步请求中携带的时间戳取差值,获得所述第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔。
[0070]
可选的,所述确定模块,用于:
[0071]
如果所述时间间隔小于所述第二设备对应的缓存清空时长,则根据所述第二设备缓存的各分片的名称,确定所述各分片分别对应的分片清空时长;
[0072]
根据所述时间间隔和所述各分片分别对应的分片清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[0073]
可选的,所述发送模块,还用于:
[0074]
如果所述时间间隔大于或等于所述第二设备对应的缓存清空时长,则向所述第二设备发送缓存清空通知,以使所述第二设备对当前存储的分片中的数据进行清空处理。
[0075]
可选的,所述确定模块,用于:
[0076]
根据所述第二设备缓存的各分片的名称、存储的分片的名称与分片类型的对应关系,确定所述第二设备缓存的各分片所属的分片类型;
[0077]
根据存储的分片类型与分片清空时长的对应关系,确定所述各分片所属的分片类型所对应的分片清空时长。
[0078]
可选的,所述确定模块,用于:
[0079]
对于所述第二设备缓存的每个分片,如果所述时间间隔大于或等于所述分片的分片清空时长,则确定所述分片的名称为待清空的分片的名称,如果所述时间间隔小于所述分片的分片清空时长,则确定所述分片对应的目标同步时长和目标同步记录数目,所述目标同步时长用于指示所述分片的数据被同步的最 长时间间隔,所述目标同步记录数目用于指示所述分片被同步的最多次数;
[0080]
如果所述时间间隔大于或等于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目大于或等于所述分片对应的目标同步记录数目,则确定所述分片的名称为待清空的分片的名称;
[0081]
如果所述时间间隔小于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目小于所述分片对应的目标同步记录数目,则确定所述分片的名称为无更新的分片的名称;
[0082]
如果所述时间间隔大于或等于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目小于所述分片对应的目标同步记录数目,则确定所述分片的名称为待更新的分片的名称;
[0083]
如果所述时间间隔小于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目大于或等于所述分片对应的目标同步记录数目,则确定所述分片的名称为待更新的分片的名称。
[0084]
可选的,所述确定模块,用于:
[0085]
根据存储的分片的名称与分片类型的对应关系,确定所述分片所属的分片类型;
[0086]
根据存储的分片类型与目标同步时长、目标同步记录数目的对应关系,确定所述分片所属的分片类型对应的目标同步时长和目标同步记录数目。
[0087]
可选的,所述确定模块,还用于:
[0088]
从目标缓存区域获取所述分片的同步记录数目。
[0089]
可选的,所述接收模块,还用于:
[0090]
接收数据修改请求,其中,所述数据修改请求中携带有修改后的数据、修改前的数据的标识和所述修改后的数据所属的分片的名称;
[0091]
所述设备还包括:
[0092]
同步模块,用于根据所述数据修改请求,在数据库中,将所述修改前的数据的标识对应的数据修改为修改后的数据,并且在所述目标缓存区域,记录所述修改后的数据所属的分片的名称、目标分片类型、存储所述修改后的数据的时间戳和所述修改后的数据的对应关系,所述目标分片类型为所述修改后的数据所属的分片的名称对应的分片类型。
[0093]
可选的,所述接收模块,用于:
[0094]
在所述第一设备与所述第二设备之间的连接为短连接时,接收所述第二设 备每隔目标周期发送的数据同步请求。
[0095]
可选的,所述发送模块,还用于:
[0096]
在所述第一设备与所述第二设备之间的连接为长连接时,每当检测到目标数据修改时,如果所述目标数据所属的分片为所述第二设备的分片,则向所述第二设备发送数据同步通知,其中,所述数据同步通知中携带有修改后的目标数据、以及所述修改后的目标数据所属的分片的名称。
[0097]
可选的,所述数据同步请求中携带有所述第二设备缓存的分片中被请求次数超过目标次数的分片的名称,其中,所述被请求次数指距离当前时间点最近的目标时长内被请求次数。
[0098]
第四方面,提供了一种同步缓存数据的设备,所述设备包括:
[0099]
发送模块,用于向第一设备发送数据同步请求,其中,所述数据同步请求中携带有第二设备缓存的分片的名称;
[0100]
接收模块,用于接收所述第一设备发送的待清空的分片的名称、无更新的分片的名称和待更新的分片的名称以及各待更新的分片中待更新的数据;
[0101]
同步模块,用于对所述待清空的分片的名称对应的每个分片进行清空处理,并且对所述待更新的分片的名称对应的每个分片中的待更新的数据进行更新处理。
[0102]
可选的,所述发送模块,用于:
[0103]
在第二设备与第一设备的连接为短连接时,每隔目标周期,向第一设备发送数据同步请求。
[0104]
可选的,所述接收模块,还用于:
[0105]
在所述第二设备与所述第一设备的连接为长连接时,接收所述第一设备发送的数据同步通知,其中,所述数据同步通知中携带有修改后的目标数据、以及所述修改后的目标数据所属的分片的名称;
[0106]
所述同步模块,还用于:
[0107]
如果所述第二设备中所述修改后的目标数据所属的分片中缓存有所述目标数据,则将所述目标数据修改为所述修改后的目标数据,如果所述第二设备中所述修改后的目标数据所属的分片中未缓存有所述目标数据,则删除所述修改后的目标数据。
[0108]
可选的,所述发送模块,还用于:
[0109]
当接收到数据查询请求时,如果所述数据查询请求对应的数据不属于所述第二设备当前缓存的分片,则创建新分片,并向所述第一设备发送创建新分片的消息;
[0110]
所述同步模块,还用于:当接收到所述服务器基于所述数据查询请求获取到相应数据时,将所述相应数据存储在所述新分片中;
[0111]
所述发送模块,还用于反馈所述数据查询请求对应的数据;
[0112]
所述发送模块,还用于如果所述数据查询请求对应的数据所属的分片为所述第二设备当前缓存的目标分片,则基于所述目标分片中所述数据查询请求对应的数据进行反馈。
[0113]
第五方面,提供了一种同步缓存数据的系统,所述系统包括第一设备和第二设备,其中:
[0114]
所述第一设备,如上述第三方面提到的设备。所述第二设备,如上述第四方面提到的设备。
[0115]
第六方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的方法步骤。
[0116]
第七方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面的方法步骤。
[0117]
第八方面,提供了一种同步缓存数据的设备,包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述第一方面的方法步骤。
[0118]
第九方面,提供了一种同步缓存数据的设备,包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述第二方面的方法步骤。
[0119]
本公开实施例提供的技术方案带来的有益效果至少包括:
[0120]
本公开实施例中,在进行数据同步时,第二设备可以向第一设备发送数据 同步请求,并在其中携带第二设备缓存的分片的名称,第一设备接收到后,可以确定本次接收该数据同步请求的与上次接收第二设备发送的数据同步请求的时间间隔,然后第一设备可以根据该时间间隔、第二设备缓存的分片的名称和第二设备对应的缓存清空时长,在第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,然后通知给第二设备,第二设备可以进行对待清空的分片的进行清空处理,对待更新的分片进行更新处理。这样,针对不同的分片,进行针对性的缓存处理,所以提供了一种同步缓存数据的方法。

附图说明

[0121]
图1是本公开实施例提供的一种同步缓存数据的系统图;
[0122]
图2是本公开实施例提供的一种同步缓存数据的系统图;
[0123]
图3是本公开实施例提供的一种同步缓存数据的方法流程图;
[0124]
图4是本公开实施例提供的一种同步缓存数据的设备的结构示意图;
[0125]
图5是本公开实施例提供的一种同步缓存数据的设备的结构示意图;
[0126]
图6是本公开实施例提供的一种同步缓存数据的设备的结构示意图;
[0127]
图7是本公开实施例提供的一种服务器的结构示意图。

具体实施方式

[0128]
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
[0129]
本公开实施例提供了一种同步缓存数据的方法,该方法的执行主体可以为第一设备和第二设备。
[0130]
同步缓存数据的方法可以应用于多种应用场景中,针对不同的应用场景,第一设备和第二设备的类型不相同,以下给出两种可能的应用场景:
[0131]
第一种应用场景,如图1所示,第一设备是第三方的服务器,第二设备是应用程序的后台服务器。用户使用第三方的账号登录应用程序时,该后台服务器和第三方的服务器进行交互,获得第三方的服务器的授权。第一设备中可以设置有处理器、存储器和收发器等。处理器可以用于进行同步缓存数据的过程的处理;存储器可以用于存储同步缓存数据的过程中需要的数据以及产生的数据;收发器可以用于接收以及发送数据。第二设备中可以设置有处理器、存储 器和收发器等。处理器可以用于进行同步缓存数据的过程的处理。存储器可以用于存储同步缓存数据的过程中需要的数据以及产生的数据。收发器可以用于接收以及发送数据。
[0132]
第二种应用场景,如图2所示,第一设备可以为应用程序的后台服务器,第二设备为安装有该应用程序的终端。用户使用应用程序的过程中,终端可以与该后台服务器交互,终端中缓存有一些数据。用户在使用应用程序的过程中,可以从终端的缓存中获取某些数据,而不需要从该后台服务器获取。这样,第一设备可以为服务器,第二设备可以为终端,终端可以为手机、电脑等。第一设备中可以设置有处理器、存储器和收发器等。处理器可以用于进行同步缓存数据的过程的处理;存储器可以用于存储同步缓存数据的过程中需要的数据以及产生的数据;收发器可以用于接收以及发送数据。第二设备中可以设置有处理器、存储器和收发器等。处理器可以用于进行同步缓存数据的过程的处理;存储器可以用于存储同步缓存数据的过程中需要的数据以及产生的数据;收发器可以用于接收以及发送数据。第二设备中还可以设置有屏幕等输入输出设备等,屏幕可以用于显示操作界面等,屏幕可以是触控式屏幕。
[0133]
本公开实施例中,以第一设备和第二设备均为服务器(即第一种应用场景)为例进行方案的详细描述,其它情况与之类似,本公开实施例不再累述。
[0134]
本公开实施例提供了一种同步缓存数据的方法,如图3所示,该方法的执行流程可以如下:
[0135]
步骤301,第二设备向第一设备发送数据同步请求。
[0136]
在实施中,第二设备在与第一设备建立连接之后,可以获取自身存储的所有分片的名称(将一大块数据分成更小、更容易管理的部分,每一部分即为一个分片)。然后第二设备可以生成数据同步请求,将所有分片的名称添加在数据同步请求中。第二设备向第一设备发送数据同步请求。
[0137]
可选的,数据同步请求中携带的分片的名称为第二设备缓存的分片中,被请求次数超过目标次数的分片的名称,被请求次数指距离当前时间点最近的目标时长内被请求次数。目标时长可以预设,如两天等。某个分片被请求指:该分片被其他设备请求获取。这样,仅同步高频的分片,所以可以节约传输资源。
[0138]
可选的,第一设备与第二设备为短连接时,第二设备向第一设备发送数据同步请求,相应的处理可以如下:
[0139]
在第二设备与第一设备的连接为短连接时,每隔目标周期,第二设备向第一设备发送数据同步请求。
[0140]
其中,短连接是相对于长连接而言,指在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接。每次连接只完成一项业务的发送。目标周期可以预设,并且存储至第二设备,如0.5小时等。
[0141]
在实施中,在第二设备上可以操作选择是短连接还是长连接。如果选择不接收推送,则确定第二设备与第一设备的连接为短连接。如果选择接收推送,则确定第二设备与第一设备的连接为长连接。
[0142]
如果第二设备确定与第一设备之间的连接为短连接,则每隔目标周期,与第一设备建立短连接,向第一设备发送数据同步请求。
[0143]
需要说明的是,上述短连接可以是TCP(Transmission Control Protocol,传输控制协议)短连接(还可以为HTTP(Hyper Text Transport Protocol,超文本传输协议)短连接、socket(套接字)短连接等)。
[0144]
步骤302,第一设备接收第二设备发送的数据同步请求。
[0145]
可选的,第一设备与第二设备为短连接时,接收数据同步请求,相应的处理可以如下:
[0146]
在第一设备与第二设备之间的连接为短连接时,第一设备接收第二设备每隔目标周期发送的数据同步请求。
[0147]
步骤303,第一设备确定第一设备本次接收数据同步请求和上次接收第二设备发送的数据同步请求的时间间隔。
[0148]
在实施中,第一设备在接收到第二设备发送的数据同步请求之后,可以确定本次接收该数据同步请求的时间点。然后获取上次接收第二设备发送的数据同步请求的时间点(可选的,每次第一设备接收到第二设备发送的数据同步请求之后,第一设备会记录本次接收到数据同步请求的时间点,删除上次记录的时间点,以节约存储空间,相当于仅记录有一个时间点),然后第一设备将本次的时间点与上次的时间点取差值,得到第一设备本次接收数据同步请求与上次接收第二设备发送的数据同步请求的时间间隔。
[0149]
可选的,数据同步请求中还携带有第一设备上次接收到第二设备发送的数据同步请求的时间戳信息,相应的,确定时间间隔的方式可以如下:
[0150]
第一设备将第一设备本次接收到数据同步请求的时间戳与数据同步请求中携带的时间戳取差值,得到第一设备本次接收数据同步请求和上次接收第二设 备发送的数据同步请求的时间间隔。
[0151]
在实施中,每次第一设备接收到第二设备发送的数据同步请求后,会记录接收到该数据同步请求的时间戳,然后向第二设备发送该时间戳,第二设备会进行记录。在下一次第二设备向第一设备发送数据同步请求时,可以将该时间戳添加到数据同步请求中,发送给第一设备。
[0152]
第一设备接收到第二设备发送的数据同步请求后,可以从中解析到该时间戳。并且记录该数据同步请求的本次被第一设备接收的接收时间戳,然后第一设备将本次的时间戳减去数据同步请求中的时间戳,得到第一设备本次接收数据同步请求和上次接收第二设备发送的数据同步请求的时间间隔。
[0153]
步骤304,第一设备根据时间间隔、第二设备缓存的分片的名称和第二设备对应的缓存清空时长,在第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[0154]
其中,缓存清空时长可以预设,并且存储至第一设备。缓存清空时长是最短缓存清空时长,也就是说数据的存储时长达到最短缓存清空时长后,会被全部删除。每个设备对应的缓存清空时长可以相同也可以不相同。待清空的分片为要进行删除的分片;待更新的分片为要进行更新的分片;无更新的分片为不需要进行删除和更新的分片(即缓存时长还未达到最短缓存清空时长,且也没有内容要更新的分片)。
[0155]
在实施中,第一设备确定出时间间隔后,可以获取对应第二设备预先存储的缓存清空时长。然后第一设备使用该时间间隔、缓存清空时长和第二设备缓存的分片的名称,在第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[0156]
可选的,第一设备可以使用缓存清空时长,在第二设备缓存的分片的名称中确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,相应的步骤304的处理可以如下:
[0157]
如果时间间隔小于第二设备对应的缓存清空时长,则第一设备根据第二设备缓存的各分片的名称,确定各分片分别对应的分片清空时长。第一设备根据时间间隔和各分片分别对应的分片清空时长,在第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[0158]
在实施中,第一设备可以判断步骤303中的时间间隔与第二设备对应的缓存清空时长的大小。如果该时间间隔小于第二设备对应的缓存清空时长,则第 一设备可以使用第二设备缓存的各分片的名称,确定各分片分别对应的分片清空时长。然后第一设备可以使用步骤303中的时间间隔和各分片分别对应的分片清空时长,在第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[0159]
另外,如果步骤303中的时间间隔大于或等于第二设备对应的缓存清空时长,则第一设备可以向第二设备发送缓存清空通知。第二设备接收到第一设备发送的缓存清空通知后,可以将第二设备存储的各分片的数据全部删除。这样,在相邻两次接收数据同步请求的时间间隔比较大时,第二设备存储的分片的数据大部分都需要进行更新,第一设备如果将更新的数据全部发送至第二设备,会使第二设备短时间内接收到的数据比较多,导致第二设备的响应比较差。然而本公开中是通知第二设备将所有数据进行清空,不会导致第二设备的响应比较差。
[0160]
可选的,第一设备使用分片的名称,获取分片清空时长的方式可以如下:
[0161]
第一设备根据存储的分片的名称与分片类型的对应关系,确定第二设备缓存的各分片所属的分片类型。第一设备根据存储的分片类型与分片清空时长的对应关系,确定各分片所属的分片类型所对应的分片清空时长。
[0162]
其中,分片清空时长用于指示一个分片的存储时长达到该分片对应的分片清空时长时,该分片会被确定为待清空的分片。
[0163]
在实施中,在第一设备中存储有分片的名称与分片类型的对应关系,不同分片类型用于指示分片的数据为不同种类,不同种类的数据有不同的重要性。比如,对于一个购物类应用程序的后台服务器,可以分为权限数据、商品信息和历史浏览数据和个人信息等。在这几类数据中权限数据和个人信息可以为一类,为重要数据;商品信息可以为另一类,为次重要数据;历史浏览数据可以为另一类,为非重要数据等。对于同一分片类型下的各分片的数据的重要性一样,所以分片清空时长也相同。
[0164]
在第一设备中还存储有分片的名称与分片类型的对应关系,第一设备可以获取预先存储的分片的名称与分片类型的对应关系,在该对应关系中,确定第二设备缓存的各分片所属的分片类型。在第一设备中,还存储有分片类型与分片清空时长的对应关系。然后第一设备可以获取预先存储的分片类型与分片清空时长的对应关系,从该对应关系中,确定第二设备缓存的各分片所属的分片类型所对应的分片清空时长。这样,第一设备就可以确定出第二设备缓存的各 分片对应的分片清空时长。
[0165]
可选的,第一设备可以使用分片清空时长,确定出待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,相应的处理可以如下:
[0166]
对于第二设备缓存的每个分片,如果时间间隔大于或等于该分片的分片清空时长,则第一设备确定该分片的名称为待清空的分片的名称,如果时间间隔小于该分片的分片清空时长,则第一设备确定该分片对应的目标同步时长和目标同步记录数目。如果时间间隔大于或等于该分片对应的目标同步时长,且在时间间隔内,第一设备上该分片的同步记录数目大于或等于该分片对应的目标同步记录数目,则第一设备确定该分片的名称为待清空的分片的名称。如果时间间隔小于该分片对应的目标同步时长,且在时间间隔内,第一设备上该分片的同步记录数目小于该分片对应的目标同步记录数目,则第一设备确定该分片的名称为无更新的分片的名称。如果时间间隔大于或等于该分片对应的目标同步时长,且在时间间隔内,第一设备上该分片的同步记录数目小于该分片对应的目标同步记录数目,则第一设备确定该分片的名称为待更新的分片的名称。如果时间间隔小于该分片对应的目标同步时长,且在步骤303确定的时间间隔内,第一设备上该分片的同步记录数目大于或等于该分片对应的目标同步记录数目,则第一设备确定该分片的名称为待更新的分片的名称。
[0167]
其中,目标同步时长与分片对应设置,对于一个分片,目标同步时长为该分片的数据被同步的最长时长间隔,对于一个分片,若在两次接收数据同步请求的时间间隔大于目标同步时长,为了使分片中的数据比较新,要及时的进行同步。目标同步记录数目与分片对应设置,对于一个分片,目标同步记录数目为该分片的数据最多被同步的次数,对于一个分片,若在两次接收数据同步请求的时间间隔内该分片被同步的次数超过目标同步记录数目,为了使分片中的数据比较新,要及时的进行同步。
[0168]
在实施中,对于第二设备缓存的任一分片,第一设备可以判断步骤303确定的时间间隔与该分片的分片清空时长的大小。如果该时间间隔大于或等于该分片的分片清空时长,则第一设备可以确定该分片为待清空的分片,该分片的名称为待清空的分片的名称。如果步骤303确定的时间间隔小于该分片的分片清空时长,则第一设备可以确定该分片对应的目标同步时长和目标同步记录数目,然后判断上述时间间隔与该目标同步时长的大小。并且第一设备获取第一设备上该分片在这段时间间隔(即步骤303确定的时间间隔)内,被修改的次 数,也即同步记录数目,然后比较该同步记录数目与目标同步记录数目的大小。
[0169]
如果步骤303确定的时间间隔大于或等于该分片对应的目标同步时长,且该分片的同步记录数目大于或等于该分片对应的目标同步记录数目,则第一设备可以确定该分片的名称为待清空的分片的名称。例如,目标同步记录数目为100,该分片的同步记录数目为105,上述时间间隔为5分钟,目标同步时长为2分钟,第一设备可以确定该分片的名称为待清空的分片的名称。这样,上述时间间隔大于或等于分片对应的目标同步时长,而且第一设备上对该分片的同步记录数目已经超出目标同步记录数目时,说明该分片如果要将所有的同步记录都发送至第二设备,会有大量的数据,所以第二设备可以直接进行清空,让第二设备使用时重新下载即可,可以减少第二设备的卡顿,尽可能的提升第二设备的响应速度。
[0170]
如果上述时间间隔小于该分片对应的目标同步时长,且该分片的同步记录数目小于该分片对应的目标同步记录数目,则第一设备可以确定该分片的名称为无更新的分片的名称。这样,上述时间间隔小于该分片对应的目标同步时长,而且第一设备上对该分片的同步记录数目未超出目标同步记录数目,说明该分片不需要同步,第一设备可以通知第二设备该分片无需同步。
[0171]
如果上述时间间隔大于或等于该分片对应的目标同步时长,且该分片的同步记录数目小于该分片对应的目标同步记录数目,则第一设备可以确定该分片的名称为待更新的分片的名称。这样,上述时间间隔大于或等于该分片对应的目标同步时长,虽然第一设备上对该分片的同步记录数目未超出该分片的目标同步记录数目,但是由于上述时间间隔已经达到目标同步时长,为了使第二设备上的分片中的数据最新,所以也应该进行及时的同步。
[0172]
如果上述时间间隔小于该分片对应的目标同步时长,且该分片的同步记录数目大于或等于该分片对应的目标同步记录数目,则第一设备可以确定该分片的名称为待更新的分片的名称。这样,虽然上述时间间隔小于该分片对应的目标同步时长,但是由于第一设备上对该分片的同步记录数目超出该分片对应的目标同步记录数目,为了使第二设备上的分片中的数据最新,所以也应该进行及时的同步。
[0173]
可选的,本公开实施例中还提供了确定分片的目标同步时长和目标同步记录数目的方式,处理可以如下:
[0174]
第一设备根据存储的分片的名称与分片类型的对应关系,确定分片所属的 分片类型。第一设备根据存储的分片类型与目标同步时长、目标同步记录数目的对应关系,确定分片所属的分片类型对应的目标同步时长和目标同步记录数目。
[0175]
在实施中,第一设备中预先存储有分片的名称与分片类型的对应关系,第一设备可以使用分片的名称,在该对应关系中,确定该分片的名称所对应的分片类型,获得分片所属的分片类型。然后第一设备可以获取预先存储的分片类型与目标同步时长、目标同步记录数目的对应关系,然后从该对应关系中,确定分片所属的分片类型对应的目标同步时长和目标同步记录数目。同一分片类型下,所有分片的目标同步时长相同,所有分片的目标同步记录数目相同。这样,由于存储了两个对应关系,更便于查找出分片的目标同步时长和目标同步记录数目。
[0176]
可选的,第一设备还可以从第一设备的缓存区域获取分片的同步记录数目,相应的处理可以如下:
[0177]
第一设备从目标缓存区域获取分片的同步记录数目。
[0178]
其中,目标缓存区域是第一设备中设置的任一块缓存区域。
[0179]
在实施中,第一设备中设置有目标缓存区域,第二设备每次请求对第一设备上的数据进行修改时,第一设备将修改后的数据更新到数据库的同时,还可以在该目标缓存区域中,存入修改后的数据,修改后的数据会对应有第一设备存入修改后的数据的时间戳,并且写明该修改后的数据所属的分片,以及该分片所属的分片类型。此处可以有两种存储方式,第一种存储方式是以时间戳的方式进行存储,修改后的数据的时间戳越晚,越排在最前面,如表一所示。
[0180]
表一
[0181]
[表0001]
修改后的数据 时间戳 分片类型 分片的名称
Data1 T1 A 121
Data2 T2 B 122
Data3 T3 A 126

[0182]
需要说明的是,在表一中,T1晚于T2,T2晚于T3。
[0183]
第二种存储方式是以分片类型的方式进行存储,相同分片类型的存储在一起,且相同分片类型的修改后的数据的时间戳越晚,越排在前面,如表二所示。
[0184]
表二
[0185]
[表0002]
修改后的数据 时间戳 分片类型 分片的名称
Data1 T1 A 121
Data3 T3 A 126
Data2 T2 B 122

[0186]
需要说明的是,在表二中,T1晚于T3。
[0187]
这样,某个分片在第一设备上的同步记录数目在获取时,第一设备可以使用步骤303中的时间间隔,确定时间间隔对应的时间戳范围(如时间间隔为2019年7月1日至2019年7月15日,则时间戳范围为2019年7月1日至2019年7月15日),然后确定在这个时间戳范围内,该分片的同步记录数目。这样,由于可以从目标缓存区域中,获取到同步记录数目,而不需要访问数据库,所以可以节约处理时长。
[0188]
可选的,本公开实施例还提供了其它设备(其他设备指与第一设备有业务关联的设备)修改数据的过程,相应的处理可以如下:
[0189]
第一设备接收数据修改请求,其中,数据修改请求中携带有修改后的数据、修改前的数据的标识和修改后的数据所属的分片的名称。第一设备根据数据修改请求,在数据库中,将修改前的数据的标识对应的数据修改为修改后的数据,并且在目标缓存区域,记录修改后的数据所属的分片的名称、目标分片类型、存储修改后的数据的时间戳和修改后的数据的对应关系,目标分片类型为修改后的数据所属的分片的名称对应的分片类型。
[0190]
在实施中,与第一设备有业务关联的设备(可以包括第二设备)要修改数据时,可以向第一设备发送数据修改请求。在该数据修改请求中携带有修改后的数据,以及修改前的数据的标识和修改后的数据所属的分片的名称。
[0191]
第一设备接收到数据修改请求后,可以从中解析得到修改后的数据,以及修改后的数据所属的分片的名称。然后第一设备可以在数据库中,使用该分片的名称,查找到相应的分片。然后第一设备使用修改前的数据的标识,查找到该修改前的数据,使用修改后的数据替换修改前的数据。并且第一设备可以在目标缓存区域中,记录修改后的数据所属的分片的名称、目标分片类型、修改后的数据的时间戳和修改后的数据的对应关系。
[0192]
步骤305,第一设备向第二设备发送待清空的分片的名称、无更新的分片的 名称和待更新的分片的名称以及各待更新的分片中待更新的数据。
[0193]
在实施中,第一设备在确定出待清空的分片、待更新的分片和无更新的分片后,可以向第二设备发送待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[0194]
步骤306,第二设备接收第一设备发送的待清空的分片的名称、无更新的分片的名称和待更新的分片的名称以及各待更新的分片中待更新的数据。
[0195]
步骤307,第二设备对待清空的分片的名称对应的每个分片进行清空处理,并且将待更新的分片的名称对应的每个分片中的待更新的数据进行更新。
[0196]
在实施中,第二设备接收到第一设备发送的待清空的分片的名称、无更新的分片的名称的待更新的分片的名称以及各待更新的分片中待更新的数据后,可以使用待清空的分片的名称,确定待清空的分片。然后第二设备将待清空的分片中的数据删除,并且可以使用待更新的分片的名称,确定待更新的分片。然后在待更新的分片中,确定属于第二设备的待更新的数据,将属于第二设备的待更新的数据进行更新,其它不属于第二设备的待更新的数据则进行删除(这是由于第一设备发送的待更新的数据有可能不是全部是第二设备的数据,所以要在其中先确定出第二设备的待更新的数据)。第二设备对无更新的分片,则不会进行更新处理。
[0197]
可选的,本公开实施例中还提供了,第二设备与第一设备之间是长连接的处理过程:
[0198]
第一设备在第一设备与第二设备之间的连接为长连接时,每当检测到目标数据修改时,如果目标数据所属的分片为第二设备的分片,则向第二设备发送数据同步通知。其中,数据同步通知中携带有修改后的目标数据、以及修改后的目标数据所属的分片的名称。在第二设备与第一设备的连接为长连接时,第二设备接收第一设备发送的数据同步通知。如果第二设备中修改后的目标数据所属的分片中缓存有目标数据,则将目标数据修改为修改后的目标数据,如果第二设备中修改后的目标数据所属的分片中未缓存有目标数据,则删除修改后的目标数据。
[0199]
其中,长连接是相对短连接而言,完成一次数据传输后,并不会关闭长连接,每当有数据进行更新,就进行推送。
[0200]
在实施中,第一设备与第二设备之间的连接为长连接时,第二设备与第一设备建立起长连接后,可以向第一设备发送自身缓存的分片的名称,第一设备 接收到后,可以进行存储,这样,第一设备就存储有第二设备上缓存的分片的名称。后续每当有数据发生改变时,第一设备确定该数据(后续可以称为是目标数据)所属的分片是否是第二设备缓存的分片。如果是第二设备缓存的分片,则第一设备可以向第二设备发送数据同步通知,并在其中携带修改后的目标数据、以及修改后的目标数据所属的分片的名称。
[0201]
第二设备接收到第一设备发送的数据同步通知后,可以从中解析得到修改后的目标数据、以及修改后的目标数据所属的分片的名称。然后第二设备可以使用该分片的名称,查找到对应的分片,在该分片中,确定是否存在目标数据。如果存在目标数据,则将目标数据修改为修改后的目标数据,如果不存在目标数据,则可以删除修改后的目标数据。这是由于一个分片中有可能存储有其它设备的数据,如果是其它设备的数据进行修改,第二设备就不需要该修改后的数据,所以可以进行删除。
[0202]
需要说明的,上述长连接可以是TCP长连接(还也可以为HTTP长连接、socket长连接)。
[0203]
还需要说明的是,在长连接中,第二设备实现的是与第一设备的强一致性,所以每次第一设备的数据进行修改,均会通知给第二设备。而短连接中,第二设备实现的是最终一致性,即数据的同步允许有一定的延时,但是最终的数据与第一设备上的数据相同,例如,在短连接中,第二设备与第一设备的数据可以周期性进行同步。
[0204]
可选的,本公开实施例中,还提供了第二设备接收到数据查询请求的处理,相应的处理可以如下:
[0205]
第二设备当接收到数据查询请求时,如果数据查询请求对应的数据所属的分片不属于第二设备当前缓存的分片,则创建新分片,并向第一设备发送创建新分片的消息和数据查询请求;第二设备当接收到服务器基于数据查询请求获取到相应数据时,将相应数据存储在新分片中,并反馈数据查询请求对应的数据。如果数据查询请求对应的数据所属的分片为第二设备当前缓存的目标分片,则基于目标分片中数据查询请求对应的数据进行反馈。
[0206]
在实施中,用户要查询数据时,可以通过应用程序所安装的终端向第二设备发送数据查询请求,第二设备可以确定该数据查询请求所要请求的数据是否属于当前缓存的分片。如果不属于当前缓存的分片,则可以创建一个新分片,然后向第一设备发送创建新分片的消息和数据查询请求。第一设备接收到创建 新分片的消息和数据查询请求后,可以向第二设备返回任意一个分片的数据。第二设备接收到后,可以将接收到的数据写入到新分片中,第一设备同时基于数据查询请求,从数据库中查询到相应的数据,返回给第二设备。第二设备可以将接收到的数据查询请求对应的数据更新至新分片中。并且同时向应用程序所安装的终端反馈数据查询请求对应的数据。这样,先反馈数据写入第二设备的分片,而无需等待。或者,第一设备接收到创建新分片的消息和数据查询请求后,第一设备可以基于数据查询请求,从数据库中查询到相应的数据,返回给第二设备。第二设备可以将接收到的数据查询请求对应的数据更新至新分片中。并且同时向应用程序所安装的终端反馈数据查询请求对应的数据。
[0207]
如果数据查询请求对应的数据属于第二设备当前缓存的目标分片,则从目标分片中,获取数据查询请求对应的数据,反馈给该应用程序所安装的终端。
[0208]
需要说明的是,该查询可以适用于长连接和短连接。
[0209]
另外,在第二设备中,有些数据是不经常使用的,或者是不使用的,频繁的更新会浪费资源,在这种情况下,第二设备可以记录每条数据最后一次使用时间点距离当前时间点的时长,在超过预设的删除时长时,可以将该条数据删除。另外,如果某个分片中没有包括任何数据,则将该分片进行删除。
[0210]
需要说明的是,在实现本申请时,第二设备与相关技术的第二设备的区别可以是:本申请的第二设备中增加了一个客户端,客户端中有缓存区域,与第一设备进行同步,所以凡是进行数据同步的系统中,只要嵌入一个客户端提供缓存区域即可。
[0211]
这样,通过本申请,对于不同的分片中的数据,基于一定规则进行不同的处理,可以使处理合理,而且第二设备上存储有多个分片,在接收到数据查询请求时,如果分片中有数据查询请求对应的数据,则不需要从第一设备获取,就可以进行反馈,不仅提高了响应效率,而且降低了第一设备的压力。
[0212]
本公开实施例中,在进行数据同步时,第二设备可以向第一设备发送数据同步请求,并在其中携带第二设备缓存的分片的名称,第一设备接收到后,可以确定本次接收该数据同步请求的与上次接收第二设备发送的数据同步请求的时间间隔,然后第一设备可以根据该时间间隔、第二设备缓存的分片的名称和第二设备对应的缓存清空时长,在第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,然后通知给第二设备,第二设备可以进行对待清空的分片的进行清空处理,对待更新的分片进 行更新处理。这样,针对不同的分片,进行针对性的缓存处理,所以提供了一种同步缓存数据的方法。
[0213]
基于相同的技术构思,本公开实施例还提供了一种同步缓存数据的设备(即第一设备),如图4所示,该设备包括:
[0214]
接收模块410,用于接收第二设备发送的数据同步请求,其中,所述数据同步请求中携带有所述第二设备缓存的分片的名称;
[0215]
确定模块420,用于确定第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔;根据所述时间间隔、所述第二设备缓存的分片的名称和所述第二设备对应的缓存清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称;
[0216]
发送模块430,用于向所述第二设备发送所述待清空的分片的名称、所述无更新的分片的名称和所述待更新的分片的名称以及各待更新的分片中待更新的数据。
[0217]
可选的,所述数据同步请求中还携带有所述第一设备上次接收到所述第二设备发送的数据同步请求的时间戳;
[0218]
所述确定模块420,用于:
[0219]
将所述第一设备本次接收到所述数据同步请求的时间戳与所述数据同步请求中携带的时间戳取差值,获得所述第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔。
[0220]
可选的,所述确定模块420,用于:
[0221]
如果所述时间间隔小于所述第二设备对应的缓存清空时长,则根据所述第二设备缓存的各分片的名称,确定所述各分片分别对应的分片清空时长;
[0222]
根据所述时间间隔和所述各分片分别对应的分片清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[0223]
可选的,所述发送模块430,还用于:
[0224]
如果所述时间间隔大于或等于所述第二设备对应的缓存清空时长,则向所述第二设备发送缓存清空通知,以使所述第二设备对当前存储的分片中的数据进行清空处理。
[0225]
可选的,所述确定模块420,用于:
[0226]
根据所述第二设备缓存的各分片的名称、存储的分片的名称与分片类型的对应关系,确定所述第二设备缓存的各分片所属的分片类型;
[0227]
根据存储的分片类型与分片清空时长的对应关系,确定所述各分片所属的分片类型所对应的分片清空时长。
[0228]
可选的,所述确定模块420,用于:
[0229]
对于所述第二设备缓存的每个分片,如果所述时间间隔大于或等于所述分片的分片清空时长,则确定所述分片的名称为待清空的分片的名称,如果所述时间间隔小于所述分片的分片清空时长,则确定所述分片对应的目标同步时长和目标同步记录数目,所述目标同步时长用于指示所述分片的数据被同步的最长时间间隔,所述目标同步记录数目用于指示所述分片被同步的最多次数;
[0230]
如果所述时间间隔大于或等于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目大于或等于所述分片对应的目标同步记录数目,则确定所述分片的名称为待清空的分片的名称;
[0231]
如果所述时间间隔小于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目小于所述分片对应的目标同步记录数目,则确定所述分片的名称为无更新的分片的名称;
[0232]
如果所述时间间隔大于或等于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目小于所述分片对应的目标同步记录数目,则确定所述分片的名称为待更新的分片的名称;
[0233]
如果所述时间间隔小于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目大于或等于所述分片对应的目标同步记录数目,则确定所述分片的名称为待更新的分片的名称。
[0234]
可选的,所述确定模块420,用于:
[0235]
根据存储的分片的名称与分片类型的对应关系,确定所述分片所属的分片类型;
[0236]
根据存储的分片类型与目标同步时长、目标同步记录数目的对应关系,确定所述分片所属的分片类型对应的目标同步时长和目标同步记录数目。
[0237]
可选的,所述确定模块420,还用于:
[0238]
从目标缓存区域获取所述分片的同步记录数目。
[0239]
可选的,所述接收模块410,还用于:
[0240]
接收数据修改请求,其中,所述数据修改请求中携带有修改后的数据、修改前的数据的标识和所述修改后的数据所属的分片的名称;
[0241]
如图5所示,所述设备还包括:
[0242]
同步模块440,用于根据所述数据修改请求,在数据库中,将所述修改前的数据的标识对应的数据修改为修改后的数据,并且在所述目标缓存区域,记录所述修改后的数据所属的分片的名称、目标分片类型、存储所述修改后的数据的时间戳和所述修改后的数据的对应关系,所述目标分片类型为所述修改后的数据所属的分片的名称对应的分片类型。
[0243]
可选的,所述接收模块410,用于:
[0244]
在所述第一设备与所述第二设备之间的连接为短连接时,接收所述第二设备每隔目标周期发送的数据同步请求。
[0245]
可选的,所述发送模块430,还用于:
[0246]
在所述第一设备与所述第二设备之间的连接为长连接时,每当检测到目标数据修改时,如果所述目标数据所属的分片为所述第二设备的分片,则向所述第二设备发送数据同步通知,其中,所述数据同步通知中携带有修改后的目标数据、以及所述修改后的目标数据所属的分片的名称。
[0247]
可选的,所述数据同步请求中携带有所述第二设备缓存的分片中被请求次数超过目标次数的分片的名称,其中,所述被请求次数指距离当前时间点最近的目标时长内被请求次数。
[0248]
本公开实施例中,在进行数据同步时,第二设备可以向第一设备发送数据同步请求,并在其中携带第二设备缓存的分片的名称,第一设备接收到后,可以确定本次接收该数据同步请求的与上次接收第二设备发送的数据同步请求的时间间隔,然后第一设备可以根据该时间间隔、第二设备缓存的分片的名称和第二设备对应的缓存清空时长,在第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,然后通知给第二设备,第二设备可以进行对待清空的分片的进行清空处理,对待更新的分片进行更新处理。这样,针对不同的分片,进行针对性的缓存处理,所以提供了一种同步缓存数据的方法。
[0249]
需要说明的是:上述实施例提供的同步缓存数据的设备在同步缓存数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模 块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的同步缓存数据的设备与同步缓存数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0250]
基于相同的技术构思,本公开实施例还提供了一种同步缓存数据的设备(即第二设备),如图6所示,该设备包括:
[0251]
发送模块610,用于向第一设备发送数据同步请求,其中,所述数据同步请求中携带有第二设备缓存的分片的名称;
[0252]
接收模块620,用于接收所述第一设备发送的待清空的分片的名称、无更新的分片的名称和待更新的分片的名称以及各待更新的分片中待更新的数据;
[0253]
同步模块630,用于对所述待清空的分片的名称对应的每个分片进行清空处理,并且对所述待更新的分片的名称对应的每个分片中的待更新的数据进行更新处理。
[0254]
可选的,所述发送模块610,用于:
[0255]
在第二设备与第一设备的连接为短连接时,每隔目标周期,向第一设备发送数据同步请求。
[0256]
可选的,所述接收模块620,还用于:
[0257]
在所述第二设备与所述第一设备的连接为长连接时,接收所述第一设备发送的数据同步通知,其中,所述数据同步通知中携带有修改后的目标数据、以及所述修改后的目标数据所属的分片的名称;
[0258]
所述同步模块630,还用于:
[0259]
如果所述第二设备中所述修改后的目标数据所属的分片中缓存有所述目标数据,则将所述目标数据修改为所述修改后的目标数据,如果所述第二设备中所述修改后的目标数据所属的分片中未缓存有所述目标数据,则删除所述修改后的目标数据。
[0260]
可选的,所述发送模块610,还用于:
[0261]
当接收到数据查询请求时,如果所述数据查询请求对应的数据不属于所述第二设备当前缓存的分片,则创建新分片,并向所述第一设备发送创建新分片的消息;
[0262]
所述同步模块630,还用于:当接收到所述服务器基于所述数据查询请求获取到相应数据时,将所述相应数据存储在所述新分片中;
[0263]
所述发送模块610,还用于反馈所述数据查询请求对应的数据;
[0264]
所述发送模块610,还用于如果所述数据查询请求对应的数据所属的分片为所述第二设备当前缓存的目标分片,则基于所述目标分片中所述数据查询请求对应的数据进行反馈。
[0265]
本公开实施例中,在进行数据同步时,第二设备可以向第一设备发送数据同步请求,并在其中携带第二设备缓存的分片的名称,第一设备接收到后,可以确定本次接收该数据同步请求的与上次接收第二设备发送的数据同步请求的时间间隔,然后第一设备可以根据该时间间隔、第二设备缓存的分片的名称和第二设备对应的缓存清空时长,在第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,然后通知给第二设备,第二设备可以进行对待清空的分片的进行清空处理,对待更新的分片进行更新处理。这样,针对不同的分片,进行针对性的缓存处理,所以提供了一种同步缓存数据的方法。
[0266]
需要说明的是:上述实施例提供的同步缓存数据的设备在同步缓存数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的同步缓存数据的设备与同步缓存数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0267]
图7是本公开实施例提供的一种同步缓存数据的设备的结构示意图,该设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)701和一个或一个以上的存储器702,其中,所述存储器702中存储有至少一条指令,所述至少一条指令由所述处理器701加载并执行以实现上述同步缓存数据的方法的步骤。
[0268]
本申请还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述同步缓存数据的方法步骤。
[0269]
本申请还提供了一种同步缓存数据的设备,包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存 放的程序,实现上述同步缓存数据的方法步骤。
[0270]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0271]
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

权利要求书

[权利要求 1]
一种同步缓存数据的方法,其特征在于,所述方法包括: 第一设备接收第二设备发送的数据同步请求,其中,所述数据同步请求中携带有所述第二设备缓存的分片的名称; 所述第一设备确定所述第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔; 所述第一设备根据所述时间间隔、所述第二设备缓存的分片的名称和所述第二设备对应的缓存清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称; 所述第一设备向所述第二设备发送所述待清空的分片的名称、所述无更新的分片的名称和所述待更新的分片的名称以及各待更新的分片中待更新的数据。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,所述数据同步请求中还携带有所述第一设备上次接收到所述第二设备发送的数据同步请求的时间戳; 所述第一设备确定所述第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔,包括: 所述第一设备将所述第一设备本次接收到所述数据同步请求的时间戳与所述数据同步请求中携带的时间戳取差值,获得所述第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔。
[权利要求 3]
根据权利要求1所述的方法,其特征在于,所述第一设备根据所述时间间隔、所述第二设备缓存的分片的名称和所述第二设备对应的缓存清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,包括: 如果所述时间间隔小于所述第二设备对应的缓存清空时长,则所述第一设备根据所述第二设备缓存的各分片的名称,确定所述各分片分别对应的分片清空时长; 所述第一设备根据所述时间间隔和所述各分片分别对应的分片清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称。
[权利要求 4]
根据权利要求3所述的方法,其特征在于,所述方法还包括: 如果所述时间间隔大于或等于所述第二设备对应的缓存清空时长,则所述第一设备向所述第二设备发送缓存清空通知,以使所述第二设备对当前存储的分片中的数据进行清空处理。
[权利要求 5]
根据权利要求3所述的方法,其特征在于,所述第一设备根据所述第二设备缓存的各分片的名称,确定所述各分片分别对应的分片清空时长,包括: 所述第一设备根据所述第二设备缓存的各分片的名称、存储的分片的名称与分片类型的对应关系,确定所述第二设备缓存的各分片所属的分片类型; 所述第一设备根据存储的分片类型与分片清空时长的对应关系,确定所述各分片所属的分片类型所对应的分片清空时长。
[权利要求 6]
根据权利要求3至5任一所述的方法,其特征在于,所述第一设备根据所述时间间隔和所述各分片分别对应的分片清空时长,在所述第二设备缓存的分片中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称,包括: 对于所述第二设备缓存的每个分片,如果所述时间间隔大于或等于所述分片的分片清空时长,则所述第一设备确定所述分片的名称为待清空的分片的名称,如果所述时间间隔小于所述分片的分片清空时长,则所述第一设备确定所述分片对应的目标同步时长和目标同步记录数目,所述目标同步时长用于指示所述分片的数据被同步的最长时间间隔,所述目标同步记录数目用于指示所述分片被同步的最多次数; 如果所述时间间隔大于或等于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目大于或等于所述分片对应的目标同步记录数目,则所述第一设备确定所述分片的名称为待清空的分片的名称; 如果所述时间间隔小于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目小于所述分片对应的目标同步记录数目,则所述第一设备确定所述分片的名称为无更新的分片的名称; 如果所述时间间隔大于或等于所述分片对应的目标同步时长,且在所述时间间隔内,所述第一设备上所述分片的同步记录数目小于所述分片对应的目标同步记录数目,则所述第一设备确定所述分片的名称为待更新的分片的名称; 如果所述时间间隔小于所述分片对应的目标同步时长,且在所述时间间隔 内,所述第一设备上所述分片的同步记录数目大于或等于所述分片对应的目标同步记录数目,则所述第一设备确定所述分片的名称为待更新的分片的名称。
[权利要求 7]
根据权利要求6所述的方法,其特征在于,所述第一设备确定所述分片对应的目标同步时长和目标同步记录数目,包括: 所述第一设备根据存储的分片的名称与分片类型的对应关系,确定所述分片所属的分片类型; 所述第一设备根据存储的分片类型与目标同步时长、目标同步记录数目的对应关系,确定所述分片所属的分片类型对应的目标同步时长和目标同步记录数目。
[权利要求 8]
根据权利要求6所述的方法,其特征在于,所述方法还包括: 所述第一设备从目标缓存区域获取所述分片的同步记录数目。
[权利要求 9]
根据权利要求8所述的方法,其特征在于,所述方法还包括: 所述第一设备接收数据修改请求,其中,所述数据修改请求中携带有修改后的数据、修改前的数据的标识和所述修改后的数据所属的分片的名称; 所述第一设备根据所述数据修改请求,在数据库中,将所述修改前的数据的标识对应的数据修改为所述修改后的数据,并且在所述目标缓存区域,记录所述修改后的数据所属的分片的名称、目标分片类型、存储所述修改后的数据的时间戳和所述修改后的数据的对应关系,所述目标分片类型为所述修改后的数据所属的分片的名称对应的分片类型。
[权利要求 10]
根据权利要求1所述的方法,其特征在于,所述第一设备接收第二设备发送的数据同步请求,包括: 在所述第一设备与所述第二设备之间的连接为短连接时,所述第一设备接收所述第二设备每隔目标周期发送的数据同步请求。
[权利要求 11]
根据权利要求10所述的方法,其特征在于,所述方法还包括: 所述第一设备在所述第一设备与所述第二设备之间的连接为长连接时,每当检测到目标数据修改时,如果所述目标数据所属的分片为所述第二设备的分片,则向所述第二设备发送数据同步通知,其中,所述数据同步通知中携带有修改后的目标数据、以及所述修改后的目标数据所属的分片的名称。
[权利要求 12]
根据权利要求1所述的方法,其特征在于,所述数据同步请求中携带有所述第二设备缓存的分片中被请求次数超过目标次数的分片的名称,其中, 所述被请求次数指距离当前时间点最近的目标时长内被请求次数。
[权利要求 13]
一种同步缓存数据的方法,其特征在于,所述方法包括: 第二设备向第一设备发送数据同步请求,其中,所述数据同步请求中携带有所述第二设备缓存的分片的名称; 所述第二设备接收所述第一设备发送的待清空的分片的名称、无更新的分片的名称和待更新的分片的名称以及各待更新的分片中待更新的数据; 所述第二设备对所述待清空的分片的名称对应的每个分片进行清空处理,并且对所述待更新的分片的名称对应的每个分片中的待更新的数据进行更新处理。
[权利要求 14]
根据权利要求13所述的方法,其特征在于,所述第二设备向第一设备发送数据同步请求,包括: 在第二设备与第一设备的连接为短连接时,每隔目标周期,所述第二设备向第一设备发送数据同步请求。
[权利要求 15]
根据权利要求14所述的方法,其特征在于,所述方法还包括: 在所述第二设备与所述第一设备的连接为长连接时,所述第二设备接收所述第一设备发送的数据同步通知,其中,所述数据同步通知中携带有修改后的目标数据、以及所述修改后的目标数据所属的分片的名称; 如果所述第二设备中所述修改后的目标数据所属的分片中缓存有所述目标数据,则将所述目标数据修改为所述修改后的目标数据,如果所述第二设备中所述修改后的目标数据所属的分片中未缓存有所述目标数据,则删除所述修改后的目标数据。
[权利要求 16]
根据权利要求13至15任一所述的方法,其特征在于,所述方法还包括: 所述第二设备当接收到数据查询请求时,如果所述数据查询请求对应的数据不属于所述第二设备当前缓存的分片,则创建新分片,并向所述第一设备发送创建新分片的消息;所述第二设备当接收到所述服务器基于所述数据查询请求获取到相应数据时,将所述相应数据存储在所述新分片中,并反馈所述数据查询请求对应的数据; 如果所述数据查询请求对应的数据所属的分片为所述第二设备当前缓存的 目标分片,则基于所述目标分片中所述数据查询请求对应的数据进行反馈。
[权利要求 17]
一种同步缓存数据的设备,其特征在于,所述设备包括: 接收模块,用于接收第二设备发送的数据同步请求,其中,所述数据同步请求中携带有所述第二设备缓存的分片的名称; 确定模块,用于确定第一设备本次接收所述数据同步请求和上次接收所述第二设备发送的数据同步请求的时间间隔;根据所述时间间隔、所述第二设备缓存的分片的名称和所述第二设备对应的缓存清空时长,在所述第二设备缓存的分片的名称中,确定待清空的分片的名称、待更新的分片的名称和无更新的分片的名称; 发送模块,用于向所述第二设备发送所述待清空的分片的名称、所述无更新的分片的名称和所述待更新的分片的名称以及各待更新的分片中待更新的数据。
[权利要求 18]
一种同步缓存数据的设备,其特征在于,所述设备包括: 发送模块,用于向第一设备发送数据同步请求,其中,所述数据同步请求中携带有第二设备缓存的分片的名称; 接收模块,用于接收所述第一设备发送的待清空的分片的名称、无更新的分片的名称和待更新的分片的名称以及各待更新的分片中待更新的数据; 同步模块,用于对所述待清空的分片的名称对应的每个分片进行清空处理,并且对所述待更新的分片的名称对应的每个分片中的待更新的数据进行更新处理。
[权利要求 19]
一种同步缓存数据的系统,其特征在于,所述系统包括第一设备和第二设备,其中: 所述第一设备,如所述权利要求17所述的同步缓存数据的设备; 所述第二设备,如所述权利要求18所述的同步缓存数据的设备。
[权利要求 20]
一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-12任一所述的方法步骤。
[权利要求 21]
一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求13至16任一所述的方法步骤。
[权利要求 22]
一种同步缓存数据的设备,其特征在于,包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现权利要求1-12任一所述的方法步骤。
[权利要求 23]
一种同步缓存数据的设备,其特征在于,包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现权利要求13至16任一所述的方法步骤。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]  
[ 图 7]