本技术涉及通信领域,尤其涉及一种数据同步方法、装置、存储介质及电子设备。
背景技术:
1、随着物联网技术的发展,人们对智能家居生活的替换要求越来越高,智能家居设备和家庭主机或云服务器之间需要进行数据同步。在相关技术中,数据同步的方法包括:服务器每次将待同步数据发送给终端设备,终端设备计算待同步数据的哈希值和存储的数据的哈希值,根据两个哈希值判断是否发生数据更新,若发生数据更新则执行数据更新步骤。
技术实现思路
1、本技术提供一种数据同步方法、装置、存储介质及电子设备,解决现有技术中数据同步存在数据传输量较大且计算开销比较大的问题。
2、第一方面,本技术提供了一种数据同步方法,包括:
3、服务器获取当前全量数据;
4、所述服务器根据所述当前全量数据更新所述上一全量数据,以及根据预设的哈希算法对所述当前全量数据进行计算得到当前摘要数据;
5、所述服务器将所述当前摘要数据发送给终端设备;其中,所述终端设备比较所述当前摘要数据和存储的上一摘要数据是否相同,若为否,向所述服务器发送携带所述当前周期的时间戳的数据同步请求;
6、所述服务器接收来自所述终端设备的数据同步请求,所述数据同步请求携带所述当前周期的时间戳;
7、所述服务器根据所述当前周期的时间戳将所述当前全量数据或当前增量数据发送给所述终端设备;其中,所述当前增量数据是所述当前全量数据和所述上一全量数据进行比较生成的。
8、在一种可能的设计中,所述服务器获取当前全量数据,包括:
9、所述服务器生成当前全量数据;或
10、所述服务器接收来自第三方设备的当前全量数据。
11、在一种可能的设计中,其特征在于,所述预设的哈希算法为:md5或sha。
12、在一种可能的设计中,所述服务器将所述当前摘要数据发送给终端设备,包括:
13、在所述当前摘要数据中添加序列号;
14、向所述终端设备发送携带所述当前摘要数据;
15、若预设时长内接收到所述终端设备返回的应答数据,且所述应答数据的序列号与该序列号相同,则确定所述当前摘要数据传输成功;
16、若所述预设时长内未接收到所述终端设备返回的携带所述摘要数据的应答数据,则表示传输失败。
17、在一种可能的设计中,还包括:
18、若首次传输失败,根预设重传次数进行重传所述当前摘要数据。
19、在一种可能的设计中,所述服务器根据所述当前全量数据更新所述上一全量数据之前,还包括:
20、所述服务器确定所述当前全量数据和存储的上一全量数据相比发生数据更新。
21、在一种可能的设计中,所述根据预设的哈希算法对所述当前全量数据进行计算得到当前摘要数据,包括:
22、根据预先分发的密钥对中的私钥,利用预设的哈希算法对所述当前全量数据进行计算得到当前摘要数据;
23、其中,所述服务器将所述当前摘要数据发送给终端设备,还包括:
24、利用所述密钥对中的公钥对所述当前摘要数据进行加密。
25、第二方面,本技术提供一种数据同步方法,包括:
26、终端设备接收来自服务器的当前摘要数据;
27、所述终端设备比较所述当前摘要数据和存储的上一摘要数据是否相同;
28、若为否,根据所述当前摘要数据更新上一摘要数据,以及所述终端设备向所述服务器请求所述当前全量数据,根据当前全量数据更新存储的上一全量数据。
29、在一种可能的设计中,所述终端设备向所述服务器请求当前全量数据,包括:
30、所述终端设备向所述服务器发送数据同步请求,所述数据同步请求携带所述当前摘要数据的数据id
31、所述终端设备接收所述服务器响应于所述数据同步请求返回的所述数据id关联的当前全量数据;或
32、所述终端设备接收所述服务器响应于所述数据同步请求返回的所述数据id关联的当前增量数据,以及根据所述当前增量数据和上一全量数据合并得到当前全量数据。
33、在一种可能的设计中,终端设备接收来自服务器的当前摘要数据,还包括:
34、解析所述当前摘要数据中携带的序列号;
35、若解析成功,向所述服务器返回携带所述序列号的应答数据。
36、第三方面,本技术提供一种数据同步装置,包括:
37、获取单元,用于获取当前全量数据;
38、计算单元,用于根据所述当前全量数据更新所述上一全量数据,以及根据预设的哈希算法对所述当前全量数据进行计算得到当前摘要数据;
39、发送单元,用于将所述当前摘要数据发送给终端设备;其中,所述终端设备比较所述当前摘要数据和存储的上一摘要数据是否相同,若为否,向所述服务器发送携带所述当前周期的时间戳的数据同步请求;
40、接收单元,用于接收来自所述终端设备的数据同步请求,所述数据同步请求携带所述当前周期的时间戳;
41、所述发送单元,还用于根据所述当前周期的时间戳将所述当前全量数据或当前增量数据发送给所述终端设备;其中,所述当前增量数据是所述当前全量数据和所述上一全量数据进行比较生成的。
42、第三方面,本身提供一种数据同步装置,包括:
43、接收单元,用于接收来自服务器的当前摘要数据;
44、比较单元,用于比较所述当前摘要数据和存储的上一摘要数据是否相同;
45、发送单元,用于若为否,根据所述当前摘要数据更新上一摘要数据,以及向所述服务器请求所述当前全量数据,根据当前全量数据更新存储的上一全量数据。
46、本技术又一方面提供了一种装置,可以实现上述第一方面或第二方面的方法。例如所述装置可以是芯片或者服务器。可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。
47、在一种可能的实现方式中,所述装置的结构中包括处理器、存储器;所述处理器被配置为支持所述装置执行上述应用测试方法中相应的功能。存储器用于与处理器耦合,其保存所述装置必要的程序(指令)和/或数据。可选的,所述装置还可以包括通信接口用于支持所述装置与其他网元之间的通信。
48、在另一种可能的实现方式中,所述装置可以包括执行上述方法中相应动作的单元模块。
49、在又一种可能的实现方式中,包括处理器和收发装置,所述处理器与所述收发装置耦合,所述处理器用于执行计算机程序或指令,以控制所述收发装置进行信息的接收和发送;当所述处理器执行所述计算机程序或指令时,所述处理器还用于实现上述方法。
50、本技术又一方面提供了一种终端设备或服务器,该终端设备或服务器包括:存储器和处理器;其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,执行各方面所述的方法。
51、本技术的又一方面提了供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
52、本技术的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
53、在本技术中,服务器根据当前全量数据计算当前摘要数据,将当前摘要数据发送给终端设备,终端设备比较当前摘要数据和上一摘要数据是否相同,若不相同,则终端设备向服务器请求当前全量数据。服务器不需要在每次获取到全量数据时都将全量数据传输给终端设备,可以减少数据同步过程的数据传输量;仅在服务器侧进行摘要数据的计算,终端设备不需要执行摘要数据的计算,相比于现有技术在服务器和终端设备都计算摘要数据,可以降低终端设备的计算开销,以及避免两端使用不同的算法导致错误,因此可以提高计算结果的准确性。