CN107800738A - 数据更新的方法与装置 - Google Patents
数据更新的方法与装置 Download PDFInfo
- Publication number
- CN107800738A CN107800738A CN201610802259.7A CN201610802259A CN107800738A CN 107800738 A CN107800738 A CN 107800738A CN 201610802259 A CN201610802259 A CN 201610802259A CN 107800738 A CN107800738 A CN 107800738A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- updating
- update
- root
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 62
- 230000008569 process Effects 0.000 claims description 20
- 238000013480 data collection Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 9
- 230000015654 memory Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 8
- 238000007493 shaping process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及通信技术领域,尤其涉及Redis树形结构中多级联节点的数据更新技术,在一种数据更新的方法中,第一节点接收数据更新请求;当第一节点不是根节点时,第一节点确定第一节点归属的父节点,并向父节点发送数据更新请求;当第一节点是根节点时,第一节点处理数据更新请求。通过本申请提供的方案,可以灵活地使Redis树形结构中任意子节点触发数据更新请求,并将数据更新请求传递至根节点处进行数据更新,提高数据更新的效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及Redis树形结构中Redis节点的数据更新技术。
背景技术
Redis是一个开源的(open-source)、支持网络交互、可基于内存也可持久化的键-值(Key-Value)数据库。在智能抄表系统中,位于主站侧的数据采集平台(英文:datacollection platform,简称:DCP)集群通常会使用Redis作为缓存,提高数据的查询效率,减少数据库的连接数量,从而降低数据库的负荷。
如图1所示,Redis数据库采用树形结构。Redis数据库的树形结构中存在一个根节点,根节点下面连接多个子节点,子节点下面又可以连接多个孙节点,以此类推。
Redis树形结构中,当下级Redis节点需要进行数据更新时,会向其父节点发送数据更新请求;如果该父节点是Redis树形结构的根节点,则该父节点会进行数据更新;否则该父节点向该下层Redis节点反馈更新失败。举例来说,当图1中的从孙节点2_2_1需要进行数据更新时,从孙Redis节点2_2_1会向其父节点,即,孙节点2_2,发送数据更新请求。由于孙节点2_2不是Redis树形结构的根节点,因此,孙节点2_2不会处理该数据更新请求,并会向从孙节点2_2_1反馈更新失败。同样,当图1中的孙节点2_2需要更新数据时,会向其父节点,即,子节点2,发送数据更新请求。由于子节点2不是Redis树形结构的根节点,因此子节点2会向孙节点2_2反馈更新失败。当图1中的子节点2需要进行数据更新,该子节点2会向其父节点,即,根节点,发送数据更新请求。根节点收到数据更新请求后会进行数据更新,然后根节点再向子节点2同步数据,子节点2会继续向下一层节点,即,孙节点2-1和孙节点2-2同步数据,以此类推。
Redis树形结构中的传统数据更新方式存在以下缺陷:节点无法进行跨级的数据更新操作。换言之,要由Redis树形结构中的根节点进行数据更新后,再向下层节点逐级同步数据更新;Redis树形结构中除根节点之外的其它Redis节点无法直接进行数据更新,导致整个系统的数据更新效率低。
发明内容
本申请提供了一种数据更新的方法与装置,可以解决Redis树形结构无法进行跨级的数据更新操作,导致数据更新效率低的问题。
第一方面,提供了一种数据更新的方法,该方法可应用于包括根节点和多级子节点的树形结构的Rides数据库中,包括:
第一节点接收数据更新请求;
当所述第一节点不是根节点时,第一节点确定所述第一节点归属的父节点,并向父节点转发数据更新请求;
当第一节点是根节点时,第一节点处理数据更新请求。
Redis树形结构中的各个非根节点在接收到数据更新请求后可逐级上传,直至根节点R。由此,在Redis树形结构中的任意非根节点接收到数据更新请求时,均能够实现整个Redis树形结构中节点的数据更新,提高数据更新的效率,也拓展了数据更新的方式。
结合第一方面,在第一方面的第一个实现中,所述第一节点接收数据更新请求具体包括:
所述第一节点接收数据采集平台DCP发送的所述数据更新请求;或者,
所述第一节点接收所述第一节点的下一级节点发送的所述数据更新请求。
结合第一方面,在第一方面的第二个实现中,所述第一节点接收数据更新请求之后,所述方法还包括:
所述第一节点获取已存储的所述第一节点的节点属性信息,所述节点属性信息包括所述第一节点的类型信息;
所述第一节点根据所述第一节点的类型信息,确定所述第一节点是否为根节点。
由于Redis树形结构中的节点可根据节点的类型信息,确定自身是否为根节点,即确定自身的节点类型,使得节点为非根节点接收到数据更新请求时,可将数据请求进行上传,进而实现Redis树形结构可进行跨级的数据更新操作。
结合第一方面,在第一方面的第三个实现中,还包括:
当所述第一节点不是根节点时,所述第一节点接收所述父节点发送的更新结果响应,所述更新结果响应包括第一更新数据;
所述第一节点根据所述第一更新数据,进行数据更新;
所述第一节点向所述第一节点的下一级节点发送所述更新结果响应。
根节点在接收到数据更新请求并进行数据更新后,将更新数据下发至下一级节点中,再由每个下一级节点逐层下发,以使得实现整个Redis树形结构中的各个节点均可进行数据更新,保证各个节点的数据一致。
结合第一方面,在第一方面的第四个实现中,所述当所述第一节点是根节点时,所述第一节点处理所述数据更新请求具体包括:
所述第一节点根据所述数据更新请求进行数据更新,并向所述第一节点的下一级节点发送更新结果响应,所述更新结果响应包括第二更新数据。
第二方面,提供了一种数据更新装置,用于包括根节点和多级子节点的树形结构Rides数据库中,该装置部署在Rides数据库的第一节点上,该装置包括:
接收单元,用于接收数据更新请求;
确定单元,用于当所述第一节点不是根节点时,确定所述第一节点归属的父节点;
转发单元,用于当所述第一节点不是根节点时,向所述父节点转发所述数据更新请求;
处理单元,用于当所述第一节点是根节点时,处理所述数据更新请求。
结合第二方面,在第一方面的第一个实现中,所述接收单元具体用于,接收数据采集平台DCP发送的所述数据更新请求;或者,
接收所述第一节点的下一级节点发送的所述数据更新请求。
结合第二方面,在第一方面的第二个实现中,还包括:
获取单元,用于获取已存储的所述装置的节点属性信息,所述节点属性信息包括所述装置的类型信息;
所述确定单元还用于,根据所述装置的类型信息,确定所述装置的所在节点是否为根节点。
结合第二方面,在第一方面的第三个实现中,所述接收单元还用于,接收所述父节点发送的更新结果响应,所述更新结果响应包括第一更新数据;
所述装置还包括:第一更新单元,用于根据所述第一更新数据进行数据更新;
所述转发单元还用于,向所述第一节点的下一级节点发送所述更新结果响应。
结合第二方面,在第一方面的第四个实现中,所述处理单元具体用于,根据所述数据更新请求进行数据更新,并向所述第一节点的下一级节点发送更新结果响应,所述更新结果响应包括第二更新数据。
第三方面,提供了一种数据更新装置,用于包括根节点和多级子节点的树形结构的Rides数据库中,该装置部署在所述Rides数据库的第一节点上,该装置包括:接收器、处理器和发送器;
所述接收器,用于接收数据更新请求;
所述处理器,用于当所述第一节点不是根节点时,确定所述第一节点归属的父节点;
所述发送器,用于当所述第一节点不是根节点时,向所述父节点转发所述数据更新请求;
所述处理器还用于,当所述第一节点是根节点时,处理所述数据更新请求。
结合第三方面,在第三方面的第一个实现中,所述接收器具体用于,接收数据采集平台DCP发送的所述数据更新请求;或者,
接收所述第一节点的下一级节点发送的所述数据更新请求。
结合第三方面,在第三方面的第二个实现中,所述处理器还用于,获取已存储的所述装置的节点属性信息,所述节点属性信息包括所述装置的类型信息;
根据所述装置的类型信息,确定所述装置所在的节点是否为根节点。
结合第三方面,在第三方面的第三个实现中,所述接收器还用于,接收所述父节点发送的更新结果响应,所述更新结果响应包括第一更新数据;
所述处理器还用于,根据所述第一更新数据,进行数据更新;
所述发送器还用于,向所述第一节点的下一级节点发送所述更新结果响应。
结合第三方面,在第三方面的第四个实现中,所述处理器还具体用于,根据所述数据更新请求进行数据更新;
所述发送器还用于,向所述第一节点的下一级节点发送更新结果响应,所述更新结果响应包括第二更新数据。
第四方面,提供了一种计算机存储介质,用于储存为上述数据更新的装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
相较于现有技术,在Redis树形结构中的任意节点接收到数据更新请求时,均能够实现Redis树形结构中节点的数据更新,提高数据更新的效率,也拓展了数据更新的方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术Redis树形结构中数据更新的过程示意图;
图2为本发明实施例提供的一种Redis树形结构示意图;
图3为本发明实施例提供的一种数据更新的方法流程图;
图4为本发明实施例提供的一种数据更新的方法时序图;
图5为本发明实施例提供的一种数据更新装置结构示意图;
图6为本发明实施例提供的另一种数据更新装置结构示意图;
图7为本发明实施例提供的一种数据更新装置硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
本发明实施例提供的数据更新的方法与装置,可用于Redis树形结构中多级节点级联的应用场景。
图2示出了本发明实施例提供的一种Redis树形结构示意图。
如图2所示,该级联的Redis树形结构中包括根节点(也可称为主节点)和多个子节点(也可称为从节点),其中节点R为根节点,子节点按照级联的顺序,依次包括:第一级子节点,第二级子节点,第三级子节点,依次类推。
其中,第一级子节点的父节点为根节点,第二级子节点的父节点为第一级子节点,第三级子节点的父节点为第二级子节点,以此类推。
具体地,在图2的示例中,根节点R与四个子节点,分别是第一级子节点1、第一级子节点2、第一级子节点3以及第一级子节点4,相连。第一级子Redis节点1与两个子节点,分别是第二级子节点1_1以及第二级子节点1_2,相连。第二级子节点1_1与一个子节点,即第三极子节点1_1_1,相连。第一级子节点2与两个子节点,分别是第二级子节点2_1以及第二级子节点2_2,相连。第二级子节点2_2与一个子节点,即第三极子节点2_2_1,相连。
可以理解的是,Redis树形结构中的每个节点可分别设置在不同的服务器内部。
在一个例子中,当第三级子节点2_2_1所在主机上的DCP触发数据更新时,第三级子节点2_2_1接收DCP发送的数据更新请求。第三级子节点2_2_1确定自身的节点类型,即第三级子节点2_2_1确定自身为是否为根节点。当第三级子节点2_2_1确定自身为子节点,而不是根节点时,由于子节点无法进行数据更新。因此,第三级子节点2_2_1向其归属的父节点发送数据更新请求,即第三级子节点2_2_1向第二级子节点2_2发送数据更新请求。
第二级子节点2_2在接收到数据更新请求后,确定其自身的节点类型,即第二级子节点2_2确定自身为根节点还是子节点。当第二级子节点确定自身为子节点,而不是根节点时,第二级子节点2_2也向其归属的父节点发送数据更新请求,即第二级子节点2_2向第一级子Redis节点2发送数据更新请求。
同理,第一级子节点2在接收到数据更新请求后,执行与第二级子节点2_2相同的过程,在确定自身为子节点时,向根节点R发送数据更新请求。
根节点R在接收到数据更新请求后,确定其自身的节点类型,即根节点R确定自身为根节点还是子节点。由于根节点R为Redis树形结构的根节点,因此,根节点R进行数据更新,并向四个子节点,即第一级子节点1至第一级子节点4发送更新结果响应,该更新结果响应包括更新数据(例如,第一更新数据)。
下面以第一级子节点1为例说明子节点进行数据更新的过程,其余子节点的数据更新过程与之相同。第一级子节点1在接收到根节点R发送的更新结果响应后,从中获取第一更新数据,第一级子节点1进行数据更新,并向第二级子节点1_1和第二级子节点1_2发送更新结果响应。第二级子节点1_1在接收到第一级子节点1发送的更新结果响应后,从中获取第一更新数据。第二级子节点1_1完成数据更新,并向第三级子节点1_1_1发送更新结果响应。第三级子节点1_1_1在接收到第二级子节点1_1发送的更新结果响应后,从中获取第一更新数据。第三级子节点1_1_1完成数据更新。至此,Redis树形结构中的各个子节点均完成数据更新。
可以理解的是,图2仅用于示例性目的。在实际应用中,Redis树形结构可仅包含根节点,第一级子节点以及第二级子节点。或者,Redis树形结构可包含比图2更多级的子节点。
根据本发明实施例提供的Redis树形结构,各级子节点在确定自身的节点类型后,将接收到数据更新请求后可逐级上传,直至根节点R。再由根节点R进行数据更新后,子节点逐级进行数据更新。而现有技术中,Redis树形结构中的各个子节点仅可将数据更新请求发送至其父节点,在父节点不是根节点的情况下,丢弃数据更新请求,不再进行上传。由此,在Redis树形结构中的任意子节点接收到数据请求时,均能够实现Redis树形结构中节点的数据更新,提高数据更新的效率,也拓展了数据更新的方式。
本发明实施例还提供了一种数据更新系统。所述数据更新系统包括至少一个服务器。每个服务器中部署了DCP以及Redis树形结构中的节点,所述节点中存储了DCP所需的数据。在本发明实施例中,服务器中部署的节点可为根节点、或第一级子节点、或第二级子节点、或第三级子节点,且Redis树形结构中的不同级节点部署在不同的服务器中。
前述实施例中所描述的Redis树形结构用于实现Redis数据库,Redis树形结构中的每个节点均为一个存储节点,节点中存储了DCP所需的数据。
本发明实施例提供的数据更新系统可用于实现数据更新的方法。下面结合附图3,对本发明的实施例提供的方案进行说明。图3为本发明实施例提供的一种数据更新的方法,在所述方法中,执行主体为第一节点,该第一节点可以为根节点R或者为子节点,具体包括以下步骤:
步骤310、第一节点接收数据更新请求。
具体地,在一种实现情况中,DCP触发数据更新流程。第一节点与DCP处于同一服务器中,该DCP的数据都对应存储在第一节点上。当该DCP需要更新数据时,直接向其对应的第一节点发送数据清洗请求,第一节点接收DCP发送的数据更新请求。例如,服务器中包括DCP以及第三级子节点2_2_1。DCP触发数据更新流程,DCP向第三级子节点2_2_1发送数据更新请求,第三级子节点2_2_1接收DCP发送的数据更新请求。
在另一种实现情况中,第一节点为Redis树形结构中除底层子节点外的其它节点(例如,第二级子节点2_2),则此时,第一节点接收其下一级节点发送的数据更新请求。例如,第二级子节点2_2接收第三级子节点2_2_1发送的数据更新请求。
进一步地,本发明实施例中的数据更新请求中还可以包括:网关标识符(gatewayid),逻辑名称(logicname),模型(model),协议类型(protocoltype),授权级别(anthlevel),加密算法(cryptalgorithm,)低级别密码(lls、hls)以及网关类型(gatewaytype)。
步骤320、当所述第一节点不是根节点时,所述第一节点确定所述第一节点归属的父节点,并向所述父节点转发所述数据更新请求。
具体地,第一节点接收到数据更新请求后,第一节点确定自身的节点类型。当第一节点不是根节点时,第一节点确定自身归属的父节点。
在一个例子中,第三级子节点2_2_1确定自身的节点类型,即第三级子节点2_2_1确定自身为根节点还是子节点。当第三级子节点2_2_1确定自身为子节点时,由于子节点无法进行数据更新。因此,第三级子节点2_2_1向其归属的父节点发送数据更新请求,即第三级子节点2-2_1向第二级子节点2_2发送数据更新请求。
步骤330、当所述第一节点是根节点时,所述第一节点处理所述数据更新请求。
具体地,当第一节点为根节点时,第一节点根据数据更新请求进行数据更新。
在一个例子中,根节点R接收到第一级子节点2发送的数据更新请求后,确定其自身的节点类型,即根节点R确定自身为根节点还是子节点。由于根节点R为Redis树形结构的根节点,因此,根节点R进行数据更新。
因此,通过应用本发明实施例提供的数据更新的方法,Redis树形结构中的各个子节点收到数据更新请求后不是丢弃该请求,而是将接收到数据更新请求逐级上传,直至根节点R。由此,在Redis树形结构中的任意子节点接收到数据请求时,最终均能够实现Redis树形结构中节点的数据更新,提高了数据更新的效率。
可选地,在本发明实施例步骤310之后,还包括第一节点获取已存储的第一节点的节点属性信息的步骤。根据该节点属性信息,第一节点可确定自身是否为根节点,即自身的节点类型,以使得当第一节点不是根节点时,将数据更新请求发送至归属的父节点;当第一节点是根节点时,直接进行数据更新。实现了在Redis树形结构中,任意子节点接收到数据更新请求时,将数据更新请求传递至根节点处进行数据更新,提高数据更新的效率。
具体地,第一节点获取已存储的第一节点的节点属性信息,节点属性信息包括第一节点的类型信息;第一节点根据第一节点的类型信息,确定第一节点是否为根节点。即,确定第一节点的节点类型。所述节点类型具体为根节点或者子节点。
可以理解的是,在本发明实施例中,节点属性信息为预先由技术人员配置在各节点中。
下面针对不同节点分别举例说明。例如,根节点的节点属性信息中包含类型字段,整型字段以及其下一级节点的信息字段。其中,下一级节点的信息字段还可包括:IP地址子字段,网关子字段以及整型子字段。
其中,作为示例而非限定,根节点的节点属性信息如下所示:
类型:″master″
整型:(integer)3129659
第一级子节点1的信息:TP地址:″10.10.0.2″
网关:″6379″
整型:″3129242″
第一级子节点2的信息:IP地址:″10.10.0.3″
网关:″6379″
整型:″3129543″
子节点的节点属性信息中可包含类型字段,IP地址字段,网关字段,状态字段以及整型字段。
其中,作为示例而非限定,子节点的节点属性信息如下所示:
类型:″slave″
IP地址:″10.10.0.1″
网关:(integer)6379
状态:″connected″
整型:(integer)1876913
上述根节点或者子节点的节点属性信息中,包括但不仅限于上述示出的字段,在实际应用中,可根据实际情况对字段进行增加或删除。
在上述子节点的节点属性信息中还包括子节点所归属的父节点字段以及父节点地址字段(上述子节点的节点属性信息中未示出)。子节点根据所归属的父节点字段以及父节点地址字段,可将数据更新请求进行上传。
如前述示例,根据节点属性信息中的类型字段即可判断出节点是否为根节点。例如,当第一节点读取的类型字段为master时,则确定该第一节点为根节点。当第一节点读取的类型字段为slave时,则确定该节点为子节点。由此,各级节点均可根据其节点属性信息判断自身是否为根节点,从而进行与类型相对应的后续操作。例如,当节点为根节点时,该根节点进行数据更新,并将更新的数据同步到其下一级节点。当节点为子节点时,该子节点向其父节点上传数据更新请求。
可选地,根据前述可知,在节点属性信息中还包括第一节点的地址,在本发明实施例中,第一节点在确定自身为子节点后,还将自身的地址携带在数据更新请求中,以使得根节点接收到数据更新请求后,可快速确定出是由哪个子节点发送的数据更新请求。可以理解的是,当数据更新请求经过多级上传后,数据更新请求中包含多个上传数据更新请求的子节点的地址。
在一个例子中,第三级子节点2_2_1在向第二级子节点2_2上传的数据更新请求中添加第三级子节点2_2_1的地址(例如,TP地址)。第二级子节点2_2在向第一级子节点2上传的数据更新请求中添加第二级子节点2_2的地址。第一级子节点2在向根节点R上传的数据更新请求中添加第一级子节点2的地址信息。
根节点R接收到数据更新请求后,从数据更新请求中获取多级子节点的地址。在本例子中,根节点R获取到第三级子节点2_2_1、第二级子节点2_2以及第一级子节点2的地址信息。根节点R确定最初发送数据更新请求的节点为第三级子节点2_2_1。根节点R进行数据更新后,根据获取的多级子节点的地址,将更新数据按照地址进行逐级下发。同时,根节点R还可将更新数据下发至与自身连接的除第一级子节点2之外的其它第一级子节点中,再由每个第一级子节点逐级下发,以使得实现Redis树形结构中的各个节点均可进行数据更新,保证各个节点的数据一致。
可选地,在本发明实施例步骤330之后,还包括当第一节点不是根节点时,第一节点接收父节点发送的更新结果响应的步骤。
具体地,当第一节点不是根节点时,第一节点接收父节点发送的更新结果响应,第一节点根据更新结果响应包括的更新数据,进行数据更新,并向自身的下一级节点发送更新结果响应。
前述已详细说明节点进行更新数据的过程,在此不再复述。
可选地,在本发明实施例步骤330之后,还包括当第一节点是根节点时,第一节点向第一节点的下一级节点发送更新结果响应的步骤。
具体地,当第一节点是根节点时,第一节点在进行数据更新后,向其下一级节点发送更新结果响应,以使下一级节点进行数据更新,或者将更新结果响应发送至再下一级节点。
前述已详细说明节点进行更新数据的过程,在此不再复述。
下面结合附图4,对本发明的实施例提供的方案进行说明。图4为本发明实施例提供的节点之间进行数据更新过程的时序图。以Redis数据库的树形结构中的第三级子节点2_2_1收到对应的DCP发起数据更新请求为例,来说明本发明技术方案。具体包括以下步骤:
步骤400、第三级子节点接收DCP发送的数据更新请求。
具体地,第三级子节点2_2_1是Redis数据库中用于保存该DCP数据的节点。即,该DCP的数据都对应存储在第三级子节点2_2_1上。当该DCP需要更新数据时,直接向其对应的第三级子节点2_2_1发送数据更新请求,以触发整个Redis树形结构中各个节点的数据更新。
所述数据更新请求的具体结构在前述实施例中已详细说明,在此不再复述。
步骤401、第三级子节点确定自身是否为根节点,并确定归属的父节点。
具体地,第三级子节点获取已存储的节点属性信息,该节点属性信息包括第三级子节点的类型信息。根据节点的类型信息,第三级子节点确定自身为子节点。第三级子节点根据节点属性信息确定归属的父节点为第二级子节点。
步骤402、第三级子节点向第二级子节点发送数据更新请求。
步骤403、第二级子节点确定自身是否为根节点,并确定归属的父节点。
具体地,第二级子节点确定自身是否为根节点,并确定归属的父节点的过程与前述步骤401类似,在此不再复述。
步骤404、第二级子节点向第一级子节点发送数据更新请求。
步骤405、第一级子节点确定自身是否为根节点,并确定归属的父节点。
具体地,第一级子节点确定自身是否为根节点,并确定归属的父节点的过程与前述步骤401类似,在此不再复述。
步骤406、第一级子节点向根节点发送数据更新请求。
步骤407、根节点确定自身是否为根节点,并进行数据更新。
具体地,根节点在接收到数据更新请求后,也执行与前述步骤401相同的过程,在确定为自身为Redis树形结构中的根节点时,进行数据更新。
步骤408、根节点向第一级子节点发送更新结果响应。
具体地,根节点向第一级子节点发送更新结果响应,该更新结果响应包括更新数据。
根节点向第一级子节点发送更新结果响应,以使得第一级子节点将更新结果逐级下发,直至下发到第三级子节点。
步骤409、第一级子节点向第二级子节点发送更新结果响应。
步骤410、第二级子节点向第三级子节点发送更新结果响应。
步骤411、第三级子节点向DCP发送更新结果响应。
具体地,第三级子节点从更新结果响应中获取更新数据,根据更新数据进行更新,并向DCP发送更新结果响应。
可以理解的是,步骤400-步骤411仅以每个节点下连接1个下一级节点为例进行说明。在实际应用中,并不限制于此。当根节点下连接多个第一级子节点时,根节点同时向与其连接的每个第一级子节点发送更新结果响应,以使得每个第一级子节点进行数据更新,并向下继续发送更新结果响应,进而实现Redis树形结构中的各个节点均可进行数据更新,保证各个节点的数据一致。
因此,通过应用本发明实施例提供的数据更新的方法,Redis树形结构中的各个子节点在确定自身是否为根节点后,将接收到数据更新请求后可逐级上传,直至根节点R。再由根节点R进行数据更新后,子节点逐级进行数据更新。而现有技术中,Redis树形结构中的各个子节点仅可将数据更新请求发送至其父节点,在父节点不是根节点的情况下,丢弃数据更新请求,不再进行上传。由此,在Redis树形结构中的任意子节点接收到数据请求时,均能够实现Redis树形结构中节点的数据更新,提高数据更新的效率,也拓展了数据更新的方式。
本发明实施例还提供了一种数据更新装置,用以实现前述实施例中提供的数据更新的方法,如图5所示,所述装置部署在所述Rides数据库的第一节点上。所述装置包括:接收单元510、确定单元520以及转发单元530。
所述接收单元510,用于接收数据更新请求;
确定单元520,用于当所述第一节点不是根节点时,确定所述第一节点归属的父节点;
转发单元530,用于当所述第一节点不是根节点时,向所述父节点转发所述数据更新请求。
进一步地,所述接收单元510具体用于,接收数据采集平台DCP发送的所述数据更新请求;或者,
接收所述第一节点的下一级节点发送的所述数据更新请求。
进一步地,所述装置还包括:
获取单元540,用于获取已存储的所述装置的节点属性信息,所述节点属性信息包括所述装置的类型信息;
所述确定单元530还用于,根据所述装置的类型信息,确定所述装置所在的节点是否为根节点。
进一步地,所述接收单元510还用于,接收所述父节点发送的更新结果响应,所述更新结果响应包括第一更新数据;
所述装置还包括:第一更新单元550,用于根据所述第一更新数据,进行数据更新;
所述转发单元530还用于,向所述第一节点的下一级节点发送所述更新结果响应。
本发明实施例还提供了另一种数据更新的装置,用以实现前述实施例中提供的数据更新的方法,如图6所示,所述装置包括:接收单元610以及处理单元620。
所述接收单元610,用于接收数据更新请求;
处理单元620,用于当所述第一节点是根节点时,处理所述数据更新请求。
进一步地,所述接收单元610具体用于,接收数据采集平台DCP发送的所述数据更新请求;或者,
接收所述第一节点的下一级节点发送的所述数据更新请求。
进一步地,所述装置还包括:
获取单元630,用于获取已存储的所述装置的节点属性信息,所述节点属性信息包括所述装置的类型信息;
确定单元640,用于根据所述装置的类型信息,确定所述装置所在的节点是否为根节点。
进一步地,所述处理单元620具体用于,根据所述数据更新请求进行数据更新,并向所述第一节点的下一级节点发送更新结果响应,所述更新结果响应包括第二更新数据。
因此,通过应用本发明实施例提供的数据更新装置,当第一节点不是根节点时,在接收到数据更新请求后可逐级上传,直至根节点R。再由根节点R进行数据更新后,子节点逐级进行数据更新。当第一节点是根节点时,直接进行数据更新,再将更新后的数据逐级下发,子节点逐级进行数据更新。而现有技术中,Redis树形结构中的各个子节点仅可将数据更新请求发送至其父节点,在父节点不是根节点的情况下,丢弃数据更新请求,不再进行上传。由此,在Redis树形结构中的任意子节点接收到数据请求时,均能够实现Redis树形结构中节点的数据更新,提高数据更新的效率,也拓展了数据更新的方式。
另外,本发明实施例还提供了一种数据更新装置,用以实现前述本发明实施例中的数据更新的方法,如图7所示,所述装置包括:接收器710、处理器720、发送器730以及存储器740。所述装置部署在Redis数据库的第一节点上,用于包括根节点和多级子节点的树形结构的Rides数据库中。接收器710、处理器720、发送器730以及存储器740通过总线750相互连接;总线750可以是外设部件互连标准(英文:peripheral component interconnect,简称:PCI)总线或扩展工业标准结构(英文:extended industry standard architecture,简称:EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
接收器710、发送器730为所述装置与其它设备进行通信交互的通信接口。可以为有线通信接入口,无线通信接口或其组合,其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为WLAN接口,蜂窝网络通信接口或其组合等。
处理器720可以是中央处理器(英文:central processing unit,简称:CPU),网络处理器(英文:network processor,简称:NP)或者CPU和NP的组合。
处理器720还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,简称:ASIC),可编程逻辑器件(英文:programmable logic device,简称:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logicdevice,简称:CPLD),现场可编程逻辑门阵列(英文:fieId-programmablegate array,简称:FPGA),通用阵列逻辑(英文:generic arraylogic,简称:GAL)或其任意组合。
存储器740可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,简称:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,简称:HDD)或固态硬盘(英文:solid-state drive,简称:SSD);存储器740还可以包括上述种类的存储器的组合。
可选地,存储器740还可以用于存储程序指令,当处理器720是CPU时,处理器720调用该存储器740中存储的程序指令;当处理器720是FPGA,ASIC等硬件时,处理器720无需存储器740存储程序指令,技术人员可将程序指令直接写入FPGA、ASIC的硬件处理器中,FPGA、ASIC可直接执行程序指令。
上述程序指令可实现图3、图4所示实施例中的一个或多个步骤,或其中可选的实施方式,使得所述数据更新的装置实现上述方法中数据更新的功能。
在本发明实施例中,所述接收器710,用于接收数据更新请求;
所述处理器720,用于当所述第一节点不是根节点时,确定所述第一节点归属的父节点;
所述发送器730,用于当所述第一节点不是根节点时,向所述父节点转发所述数据更新请求;
所述处理器720还用于,当所述第一节点是根节点时,处理所述数据更新请求。
进一步地,所述接收器710具体用于,接收数据采集平台DCP发送的所述数据更新请求;或者,
接收所述第一节点的下一级节点发送的所述数据更新请求。
进一步地,所述处理器720还用于,获取已存储的所述装置的节点属性信息,所述节点属性信息包括所述装置的类型信息;
根据所述装置的类型信息,确定所述装置所在的节点是否为根节点。
进一步地,存储器740用于存储节点属性信息。
进一步地,所述接收器710还用于,接收所述父节点发送的更新结果响应,所述更新结果响应包括第一更新数据;
所述处理器720还用于,根据所述第一更新数据进行数据更新;
所述发送器730还用于,向所述第一节点的下一级节点发送所述更新结果响应。
进一步地,所述处理器720还具体用于,根据所述数据更新请求进行数据更新;
所述发送器730还用于,向所述第一节点的下一级节点发送更新结果响应,所述更新结果响应包括第二更新数据。
因此,通过应用本发明实施例提供的数据更新装置,当第一节点不是根节点时,在接收到数据更新请求后可逐级上传,直至根节点R。再由根节点R进行数据更新后,子节点逐级进行数据更新。当第一节点是根节点时,直接进行数据更新,再将更新后的数据逐级下发,子节点逐级进行数据更新。而现有技术中,Redis树形结构中的各个子节点仅可将数据更新请求发送至其父节点,在父节点不是根节点的情况下,丢弃数据更新请求,不再进行上传。由此,在Redis树形结构中的任意子节点接收到数据请求时,均能够实现Redis树形结构中节点的数据更新,提高数据更新的效率,也拓展了数据更新的方式。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据更新的方法,用于包括根节点和多级子节点的树形结构的Rides数据库中,其特征在于,包括:
第一节点接收数据更新请求;
当所述第一节点不是根节点时,所述第一节点确定所述第一节点归属的父节点,并向所述父节点转发所述数据更新请求;
当所述第一节点是根节点时,所述第一节点处理所述数据更新请求。
2.根据权利要求1所述的数据更新的方法,其特征在于,所述第一节点接收数据更新请求具体包括:
所述第一节点接收数据采集平台DCP发送的所述数据更新请求;或者,
所述第一节点接收所述第一节点的下一级节点发送的所述数据更新请求。
3.根据权利要求1所述的数据更新的方法,其特征在于,所述第一节点接收数据更新请求之后,所述方法还包括:
所述第一节点获取已存储的所述第一节点的节点属性信息,所述节点属性信息包括所述第一节点的类型信息;
所述第一节点根据所述第一节点的类型信息,确定所述第一节点是否为根节点。
4.根据权利要求1所述的数据更新的方法,其特征在于,还包括:
当所述第一节点不是根节点时,所述第一节点接收所述父节点发送的更新结果响应,所述更新结果响应包括第一更新数据;
所述第一节点根据所述第一更新数据,进行数据更新;
所述第一节点向所述第一节点的下一级节点发送所述更新结果响应。
5.根据权利要求1所述的数据更新的方法,其特征在于,所述当所述第一节点是根节点时,所述第一节点处理所述数据更新请求具体包括:
所述第一节点根据所述数据更新请求进行数据更新,并向所述第一节点的下一级节点发送更新结果响应,所述更新结果响应包括第二更新数据。
6.一种数据更新装置,用于包括根节点和多级子节点的树形结构的Rides数据库中,所述数据更新装置部署在所述Rides数据库的第一节点上,其特征在于,所述装置包括:
接收单元,用于接收数据更新请求;
确定单元,用于当所述第一节点不是根节点时,确定所述第一节点归属的父节点;
转发单元,用于当所述第一节点不是根节点时,向所述父节点转发所述数据更新请求;
处理单元,用于当所述第一节点是根节点时,处理所述数据更新请求。
7.根据权利要求6所述的数据更新装置,其特征在于,所述接收单元具体用于,接收数据采集平台DCP发送的所述数据更新请求;或者,
接收所述第一节点的下一级节点发送的所述数据更新请求。
8.根据权利要求6所述的数据更新装置,其特征在于,还包括:
获取单元,用于获取已存储的所述装置的节点属性信息,所述节点属性信息包括所述装置的类型信息;
所述确定单元还用于,根据所述装置的类型信息,确定所述装置所在的节点是否为根节点。
9.根据权利要求6所述的数据更新装置,其特征在于,所述接收单元还用于,接收所述父节点发送的更新结果响应,所述更新结果响应包括第一更新数据;
所述装置还包括:第一更新单元,用于根据所述第一更新数据进行数据更新;
所述转发单元还用于,向所述第一节点的下一级节点发送所述更新结果响应。
10.根据权利要求6所述的数据更新装置,其特征在于,所述处理单元具体用于,根据所述数据更新请求进行数据更新,并向所述第一节点的下一级节点发送更新结果响应,所述更新结果响应包括第二更新数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610802259.7A CN107800738B (zh) | 2016-09-05 | 2016-09-05 | 数据更新的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610802259.7A CN107800738B (zh) | 2016-09-05 | 2016-09-05 | 数据更新的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107800738A true CN107800738A (zh) | 2018-03-13 |
CN107800738B CN107800738B (zh) | 2021-03-05 |
Family
ID=61530557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610802259.7A Active CN107800738B (zh) | 2016-09-05 | 2016-09-05 | 数据更新的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107800738B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104144A (zh) * | 2019-12-27 | 2020-05-05 | 珠海金山网络游戏科技有限公司 | 一种锚点更新的方法及装置 |
CN112307045A (zh) * | 2020-11-11 | 2021-02-02 | 支付宝(杭州)信息技术有限公司 | 一种数据同步方法及系统 |
CN114443673A (zh) * | 2021-12-15 | 2022-05-06 | 厦门市美亚柏科信息股份有限公司 | 一种基于树形结构的数据同步方法、终端设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791023A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 网格信息服务系统及其信息处理方法 |
CN102012899A (zh) * | 2009-09-07 | 2011-04-13 | 中国移动通信集团公司 | 一种数据更新的方法、系统及设备 |
CN102497646A (zh) * | 2011-12-08 | 2012-06-13 | 中山大学 | 一种用于无线网络的低开销缓存数据发现机制 |
CN103888545A (zh) * | 2014-04-14 | 2014-06-25 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统中全局型数据的处理方法和装置 |
CN103518364B (zh) * | 2013-03-19 | 2016-03-09 | 华为技术有限公司 | 分布式存储系统的数据更新方法及服务器 |
-
2016
- 2016-09-05 CN CN201610802259.7A patent/CN107800738B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791023A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 网格信息服务系统及其信息处理方法 |
CN102012899A (zh) * | 2009-09-07 | 2011-04-13 | 中国移动通信集团公司 | 一种数据更新的方法、系统及设备 |
CN102497646A (zh) * | 2011-12-08 | 2012-06-13 | 中山大学 | 一种用于无线网络的低开销缓存数据发现机制 |
CN103518364B (zh) * | 2013-03-19 | 2016-03-09 | 华为技术有限公司 | 分布式存储系统的数据更新方法及服务器 |
CN103888545A (zh) * | 2014-04-14 | 2014-06-25 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统中全局型数据的处理方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104144A (zh) * | 2019-12-27 | 2020-05-05 | 珠海金山网络游戏科技有限公司 | 一种锚点更新的方法及装置 |
CN111104144B (zh) * | 2019-12-27 | 2023-10-20 | 珠海金山数字网络科技有限公司 | 一种锚点更新的方法及装置 |
CN112307045A (zh) * | 2020-11-11 | 2021-02-02 | 支付宝(杭州)信息技术有限公司 | 一种数据同步方法及系统 |
CN114443673A (zh) * | 2021-12-15 | 2022-05-06 | 厦门市美亚柏科信息股份有限公司 | 一种基于树形结构的数据同步方法、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107800738B (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8224935B1 (en) | Systems and methods for efficiently synchronizing configuration data within distributed computing systems | |
CN106657174B (zh) | 一种数据同步方法、更新方法及装置 | |
US10749954B2 (en) | Cross-data center hierarchical consensus scheme with geo-aware leader election | |
US11693881B2 (en) | Free world replication protocol for key-value store | |
US20140089619A1 (en) | Object replication framework for a distributed computing environment | |
KR101871383B1 (ko) | 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템 | |
US10545993B2 (en) | Methods and systems of CRDT arrays in a datanet | |
US20150006619A1 (en) | Computing connected components in large graphs | |
WO2015196686A1 (zh) | 一种数据存储方法以及一种数据存储管理服务器 | |
US20170031948A1 (en) | File synchronization method, server, and terminal | |
CN107800738B (zh) | 数据更新的方法与装置 | |
WO2014101044A1 (zh) | 分布式存储系统中的分区平衡方法、装置及服务器 | |
CN111723073B (zh) | 数据存储处理方法、装置、处理系统以及存储介质 | |
CN113900810A (zh) | 分布式图处理方法、系统及存储介质 | |
US20090083210A1 (en) | Exchange of syncronization data and metadata | |
CN110958300B (zh) | 一种数据的上传方法、系统、装置、电子设备和计算机可读介质 | |
US11265182B2 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
US11212342B2 (en) | Merge trees for collaboration | |
WO2016070341A1 (zh) | 数据处理方法和装置 | |
JP6674099B2 (ja) | 情報管理プログラム、情報管理方法、及び情報管理装置 | |
KR101708236B1 (ko) | 로컬 처리 장치 및 그 데이터 송수신 방법 | |
CN114564446A (zh) | 一种文件存储的方法、装置、系统及存储介质 | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
CN101526959B (zh) | 一种数据存储方法和装置 | |
WO2021257263A1 (en) | Techniques for generating a consistent view of an eventually consistent database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |